Как инициировать событие, когда приложение удаляется из списка последних в Android

Я хочу перезапустить свое приложение, когда оно будет удалено из недавнего списка. Я добавил код перезапуска в методе onDestroy(). Он отлично работает на Android 7 и более поздних версиях. Но на Android 6 и более ранних версиях это не работает. Метод onDestroy() вызывается только при нажатии кнопки «Назад».


comment
Пожалуйста, опубликуйте свой код   -  person AbhayBohra    schedule 07.02.2019
comment
Вы можете создать службу, чтобы проверить, было ли приложение убито.   -  person Taseer    schedule 07.02.2019


Ответы (1)


onDestroy() не вызывается - вполне очевидное поведение. Когда пользователь пролистывает недавние задачи, приложение немедленно закрывается без вызова методов жизненного цикла. Если вы просмотрите документацию onDestroy(), вы найдете:

Примечание: не рассчитывайте, что этот метод будет вызываться как место для сохранения данных! Например, если действие редактирует данные в поставщике содержимого, эти изменения должны быть зафиксированы либо в onPause(), либо в onSaveInstanceState(Bundle), а не здесь. Этот метод обычно реализуется для освобождения ресурсов, таких как потоки, связанные с активностью, чтобы уничтоженная активность не оставляла такие вещи, пока остальная часть ее приложения все еще работает. Бывают ситуации, когда система просто убивает хост-процесс активности, не вызывая в нем этот метод (или любой другой), поэтому его не следует использовать для выполнения действий, которые должны остаться после завершения процесса.

Но есть обходной путь.

Посетите ЭТОТ ответ StackOverflow, если вы хотите обработать событие завершения задачи на уровне API ниже 26. Это точно сработает.

person ankuranurag2    schedule 07.02.2019