Может ли приложение быть не убито, а Activity какая-нибудь убита

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

Ответ

Да, такое возможно. Activity может быть уничтожена системой при нехватке памяти, в то время как само приложение продолжает работать в фоне. Это происходит потому, что система Android управляет компонентами приложения (Activity, Service и т.д.) отдельно от процесса приложения.

Например, при повороте экрана система уничтожает текущую Activity и создает новую, но процесс приложения остается. Также система может убить Activity в фоне при нехватке памяти, сохранив состояние в Bundle (onSaveInstanceState()).

Пример:

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") // восстановление данных
}