Жизненный цикл android приложения

272
15 июля 2017, 07:14

Для реализации задачи, мне необходим Service который запускается при старте приложения и останавливается при закрытии.

Я делал следующим образом: MainActivity - основное активити (Если оно закрывается, то можно сказать, что пользователь закончил использовать приложение). Поэтому в onDestroy я прописываю stopService. Но тут появилась проблема при повороте экрана так же отрабатывается метод onDestoy, следовательно сервис убивается.

Как отловить Глобальный onDestroy когда приложение убивается, чтобы убить Service.

Answer 1

Если привязываете сервис к жизненному циклу активити, то от таких "приколов" не уйти.

Если перезапуск сервиса критичен, то запускайте его в Application.onCreate(), по умолчанию сервис работает в процессе приложения и по сути его не надо в этом случае останавливать самому. Система его прикончит вместе с объектом Application, когда сама решит.

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

Answer 2

При повороте до onDestroy() вызывается ещё один метод жизненного цикла onSaveInstanceState(). При обычном уничтожении активити (когда пользователь закончил пользоваться приложением) этот метод не вызывается. Можете в нём ставить флаг и проверять его в onDestroy. Если флаг установлен, то не стопить сервис.

READ ALSO
Выбор ТОЛЬКО папок в JFileChooser

Выбор ТОЛЬКО папок в JFileChooser

Пытался запретить выбор файлов (можно выбирать только файлы) путем функции JFileChooserDIRECTORIES_ONLY:

241
Android 6.0+ не сохраняет изображения

Android 6.0+ не сохраняет изображения

Проблема такая, на версиях андройд меньше 60 все отлично работает, но на 6

366
Мобильная разработка под android [требует правки]

Мобильная разработка под android [требует правки]

Решил начать заниматься mobile dev'ом, в связи с этим назрел вопрос: какие технологии нужно выучить, для того чтобы:

326
Заливка файла на FTP средствами java

Заливка файла на FTP средствами java

Хочу научиться заливать файл на ftp сервер, но не выходитИспользую Apache commons net API

349