onDestroy(): когда вызывается?
onDestroy() вызывается, когда Activity окончательно уничтожается — то есть больше не будет возвращена пользователю.
Вызывается в трёх основных случаях:
- Пользователь закрыл
Activity- Нажал кнопку «назад» и
Activityудалена из back stack - Вызвано
finish()
- Нажал кнопку «назад» и
- Процесс приложения убит системой
- Из-за нехватки памяти
- Или вручную через «Force Stop»
- Конфигурационное изменение
- (например, поворот экрана) — вызывается старый
onDestroy(), но тут же создаётся новыйActivity
- (например, поворот экрана) — вызывается старый
При этом:
onDestroy()всегда послеonStop()- может не быть вызван, если процесс убит жёстко (например,
kill -9)
onRestart(): когда вызывается?
onRestart() вызывается, когда Activity возвращается из состояния Stopped в Started.
То есть:
- Пользователь сворачивал приложение (домой или переключился)
- Или перешёл на другую
Activity, но вернулся назад
Когда не вызывается onRestart():
- При повороте экрана (т.к. создаётся новый
Activity) - При переходе к новой
Activity, если текущая уничтожается