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
, если текущая уничтожается