Ich habe einen Dienst, wo ich Musik zu verwalten. Außerdem habe ich Aktivitäten, die Absichten mit der Musik des Benutzers senden. Wenn ich eine Aktivität öffne, möchte ich den aktuellen Spielstatus bekommen.Erhalten aktuellen Status von Android-Dienst
Ich habe bestimmte Spieler, die nur zwei Ereignisse haben: Spielbeginn und Spielende. Wenn ich also Broadcast benutze, bekomme ich nur das nächste Event. Ich speichere Ereignisse in Variable lastAction
, wenn Sie es erhalten. Ich kann einen neuen Befehl ACTION_SEND_CURRENT_STATE
erstellen. aber es sieht nicht gut aus.
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)
)
}
Wie bekomme ich den aktuellen Status vom Dienst richtig? als Staat meine ich letzte Aktion.
siehe https://developer.android.com/guide/components/bound-services.html – pskink
@pskink mein Dienst arbeitet als Vordergrund – punksta
es ist egal – pskink