onDestroy() когда будет вызван? onRestart() когда будет вызван?

onDestroy(): когда вызывается?

onDestroy() вызывается, когда Activity окончательно уничтожается — то есть больше не будет возвращена пользователю.

Вызывается в трёх основных случаях:
  1. Пользователь закрыл Activity
    • Нажал кнопку «назад» и Activity удалена из back stack
    • Вызвано finish()
  2. Процесс приложения убит системой
    • Из-за нехватки памяти
    • Или вручную через «Force Stop»
  3. Конфигурационное изменение
    • (например, поворот экрана) — вызывается старый onDestroy(), но тут же создаётся новый Activity

При этом:

  • onDestroy() всегда после onStop()
  • может не быть вызван, если процесс убит жёстко (например, kill -9)

onRestart(): когда вызывается?

onRestart() вызывается, когда Activity возвращается из состояния Stopped в Started.

То есть:

  • Пользователь сворачивал приложение (домой или переключился)
  • Или перешёл на другую Activity, но вернулся назад
Когда не вызывается onRestart():
  • При повороте экрана (т.к. создаётся новый Activity)
  • При переходе к новой Activity, если текущая уничтожается

Опубликовано

в

от

Метки: