Для реализации задачи, мне необходим Service который запускается при старте приложения и останавливается при закрытии.
Я делал следующим образом:
MainActivity - основное активити (Если оно закрывается, то можно сказать, что пользователь закончил использовать приложение). Поэтому в onDestroy я прописываю stopService.
Но тут появилась проблема при повороте экрана так же отрабатывается метод onDestoy, следовательно сервис убивается.
Как отловить Глобальный onDestroy когда приложение убивается, чтобы убить Service.
Если привязываете сервис к жизненному циклу активити, то от таких "приколов" не уйти.
Если перезапуск сервиса критичен, то запускайте его в Application.onCreate(), по умолчанию сервис работает в процессе приложения и по сути его не надо в этом случае останавливать самому. Система его прикончит вместе с объектом Application, когда сама решит.
Конечно оба варианта имеют свои плюсы и минусы, какой лучше, может вообще ни один из них, выбирать вам исходя из сути и назначения сервиса.
При повороте до onDestroy() вызывается ещё один метод жизненного цикла onSaveInstanceState(). При обычном уничтожении активити (когда пользователь закончил пользоваться приложением) этот метод не вызывается. Можете в нём ставить флаг и проверять его в onDestroy. Если флаг установлен, то не стопить сервис.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости