Ответ
При повороте экрана, изменении языка, конфигурации системы или принудительном завершении системой (из-за нехватки памяти). В этих случаях система вызывает onDestroy(), затем создает новый экземпляр и вызывает onCreate().
Пример сохранения состояния:
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("KEY", "value")
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val restoredValue = savedInstanceState?.getString("KEY")
}
Для обработки изменений конфигурации можно использовать android:configChanges в манифесте, но это не рекомендуется для большинства сценариев.