Выбор ответа Middle Жизненный цикл Activity и Fragment обновлено

Гарантирован ли onDestroy

Вопрос

Можно ли полагаться на onDestroy для сохранения важных данных пользователя?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Нет: если система убьёт процесс в фоне, onDestroy не вызовется. При нехватке памяти система убивает процесс целиком, никакие колбэки при этом не вызываются.

Варианты ответа

  1. Да: система вызывает его перед завершением процесса в любом случае
  2. Да, если Activity в момент закрытия не находится в фоне
  3. Нет: onDestroy вызывается только при повороте экрана
  4. Нет: если система убьёт процесс в фоне, onDestroy не вызоветсяправильный ответ

Разбор

При нехватке памяти система убивает процесс целиком, никакие колбэки при этом не вызываются. Последний надёжный момент это onStop (и onSaveInstanceState для состояния UI). onDestroy вызывается при finish(), закрытии назад и пересоздании при смене конфигурации, но не при убийстве процесса.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.