Как обновить пользовательский интерфейс активности, когда приложение находится в фоновом режиме / закрыто - PullRequest
0 голосов
/ 04 июля 2019

У меня есть служба, которая управляет моим объектом медиаплеера, и когда я закрываю свое приложение, по-прежнему отображается уведомление для управления воспроизведением.

Теперь, когда песня закончена, я хочу обновить пользовательский интерфейс в своей деятельности, и я сделал это с помощью приемника трансляции, но это работает только тогда, когда мое приложение видно, а не в фоновом режиме / закрыто. (незарегистрированный приемник в onPause)

Но как мне продолжать слушать эти события, когда мое приложение не видно и когда пользователь снова открывает мое приложение, у него есть обновленный пользовательский интерфейс (новая песня).

Услуги

@Override
public void onCompletion(MediaPlayer mp) {
    Log.d(TAG, "OnCompletion called!");

    Intent broadCastReceiverIntentUpdateSong = new Intent(Constants.ACTIONS.BROADCAST_UPDATE_SONG);
    sendBroadcast(broadCastReceiverIntentUpdateSong);

}

1 Ответ

0 голосов
/ 05 июля 2019

Когда ваше приложение запускается, оно должно запросить у Service текущее состояние проигрывателя и показать это.

Пока приложение работает и на переднем плане, оно может прослушивать события трансляции иобновите пользовательский интерфейс (или его собственное внутреннее состояние) соответствующим образом.

Когда ваше приложение переходит в фоновый режим, ему ничего не нужно делать.Когда он снова выходит на передний план (в onResume()), он может снова запросить у Service текущее состояние игрока.

Вы можете связать Activity с Service и использоватьAIDL для получения текущего состояния ИЛИ вы можете просто позвонить startService() с Intent, который содержит ДЕЙСТВИЕ или ДОПОЛНИТЕЛЬНО, который указывает, что вы хотите знать текущее состояние, и Service может рассчитывать на это, отправляя широковещательную рассылку.Intent содержит текущее состояние, которое ваш Activity может прослушивать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...