我有一项服务,可以管理音乐播放。我也有活动发送用户音乐意图。当我打开活动时,我想获得当前的播放状态。从android服务获取当前状态
我有特定的播放器,只有两个事件:播放开始和播放结束。所以如果我使用广播,我只会得到下一个事件。 获取它时,我将事件保存在变量lastAction
中。我可以创建新的命令ACTION_SEND_CURRENT_STATE
。但看起来不太好。
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
when (intent?.action) {
null -> {
player?.cancel()
}
ACTION_PLAY -> {
player?.cancel()
player = createPlayer(intent)
player?.start()
}
ACTION_STOP -> {
player?.cancel()
}
}
return START_STICKY
}
override fun onPlayingBegin(p0: player?) {
lastAction = BRODCAST_PLAYING_BEGIN
sendBroadcast(Intent(BRODCAST_PLAYING_BEGIN)
.putExtra(EXTRA_SONG, currentSong)
)
}
如何从服务中正确获取当前状态?作为我指的是最后一项行动。
看到https://developer.android.com/guide/components/bound-services.html – pskink
@pskink我的服务工作在前台 – punksta
它没关系 – pskink