Ответ
Activity может быть уничтожена системой в нескольких случаях:
-
Конфигурационные изменения (поворот экрана, изменение языка и т.д.) - система уничтожает Activity и создает новую с сохранением состояния через
onSaveInstanceState(). -
Нехватка памяти - система может убить фоновые Activity для освобождения ресурсов.
-
Явный вызов
finish()- разработчик сам завершает Activity. -
Принудительное завершение приложения пользователем через настройки.
Пример обработки состояния:
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("KEY", "Important data")
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val data = savedInstanceState?.getString("KEY") ?: "Default"
}
Важно сохранять только легковесные данные в Bundle, так как он имеет ограничения по размеру.