相关疑难解决方法(0)

将数据从服务发送到Android活动

我正在构建一个使用服务进行播放的音乐播放器.我有一个Activity UI来控制(播放,暂停,下一步......)服务.我想在按下下一个或上一个按钮时从我的服务更新UI.我想过传递一个整数值.这是我的代码:

我用过信使进行交流.我服务中的代码如下所示:

enum Event {
    NextSongChanged, CurrentPlayingSong
};

public synchronized void registerHandler(Messenger m) {
    clients.add(m);
}


private void emit(Event e) {
    for (Messenger m : clients) {
        try {
            m.send(Message.obtain(null, e.ordinal()));
        } catch (RemoteException exception) {
            /* The client must've died */
            clients.remove(m);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我打电话的方法点击下一步按钮:

public synchronized void playnext() {
    reset();
    if(songIndex <  (songsList.size() - 1)) {
        songIndex += 1;
        playSong(songIndex);
    } else {
        songIndex = 0;
        playSong(songIndex);
    }
    emit(Event.NextSongChanged);
}
Run Code Online (Sandbox Code Playgroud)

一旦我触发NextSongChanged事件,我想将"songIndex"变量传递给我的活动.有关如何实现这一点的任何想法?

我的活动代码来处理事件:

private Messenger playerMessenger = …
Run Code Online (Sandbox Code Playgroud)

android android-service android-activity

11
推荐指数
1
解决办法
3万
查看次数