У меня в приложении есть Service, который осуществляет запись звука. (Foreground)
Я хочу чтобы при закрытии приложения (удалении из оперативной памяти, а не сворачивании) и при открытии занова приложения, там было бы актуальное состояние View (play, stop, pause).
Взаимодействие с Service осуществляю с помощью Intent + BroadcastReceiver.
Как это можно реализовать? Ну play можно узнать по отправке постоянных сообщений сервисов о изменение recordingTime.
А вот как с другими? Сейчас такое взаимодействие:
Intent о действию service. Service отправляет
сообщение о начале этого действия.BroadcastReceiver и выполняю функцию у ViewModel о смене статуса.ViewModel наблюдает за этим статусом, и если он изменился то
обновляет UI. Проблема только в том, что сообщение о pause, stop,
resume сервис отправляет один раз. И если приложение в это время
закрыто (собственно и BroadcastReceiver не инициализирован), то
приложение не получит это сообщение
Вам надо использовать explicit broadcast receiver, он будет отлавливать сообщения когда приложение не запущено. Для этого его необходимо зарегистрировать в манифесте. Подробнее здесь:
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости