Мне нужно использовать startForeground, чтобы служба продолжала работать И оставалась привязанной к активность. Я пробовал использовать канал уведомлений, но как только я уничтожу действие, воспроизведение также останавливается, а это не то, что мне нужно (код все еще находится там, закомментирован).
Когда отображается уведомление, я вызываю startForeground. Для setOngoing установлено значение воспроизведенияState == STATE_PLAYING. Я вызываю stopForeground, когда служба уничтожается или когда playerState == null || ОСТАНОВИЛСЯ.
Pastebin: https://pastebin.com/FNTSSzjS
Фрагмент кода (поскольку вам необходимо включить код с помощью Pastebin)
Код: Выделить всё
private void addPlayPauseAction(NotificationCompat.Builder builder) {
String label;
int icon;
PendingIntent intent;
if (playbackState.getState() == PlaybackStateCompat.STATE_PLAYING) {
label = service.getString(R.string.play_pause);
icon = android.R.drawable.ic_media_pause;
intent = intentPause;
builder.setOngoing(true);
} else {
label = service.getString(R.string.play_pause);
icon = android.R.drawable.ic_media_play;
intent = intentPlay;
builder.setOngoing(false);
}
builder.addAction(new NotificationCompat.Action(icon, label, intent));
}
Подробнее здесь: https://stackoverflow.com/questions/522 ... goingfalse