Когда Activity может быть уничтожена

«Когда Activity может быть уничтожена» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Activity может быть уничтожена системой в нескольких случаях:

  1. Конфигурационные изменения (поворот экрана, изменение языка и т.д.) - система уничтожает Activity и создает новую с сохранением состояния через onSaveInstanceState().

  2. Нехватка памяти - система может убить фоновые Activity для освобождения ресурсов.

  3. Явный вызов finish() - разработчик сам завершает Activity.

  4. Принудительное завершение приложения пользователем через настройки.

Пример обработки состояния:

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, так как он имеет ограничения по размеру.