Работа со службой после считывания и повторного запуска приложения - PullRequest
0 голосов
/ 13 июля 2020

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

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

Есть ли что-то, что мне нужно сделать, чтобы справиться с указанным случаем? Нужен ли мне способ переназначить службу только что запущенному экземпляру моего приложения?

Спасибо.

1 Ответ

1 голос
/ 13 июля 2020

Похоже, вы уже это делаете. onStart () вы проверяете, имеет ли намерение значение null, и если это так, вы создаете новое намерение и привязываете его к службе (если она существует), в противном случае создаете новую службу.

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

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

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