Что будет со состоянием при смене конфигурации

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

Ответ

При смене конфигурации (например, повороте экрана) активити уничтожается и создается заново. По умолчанию все данные теряются.

Способы сохранения состояния:

  1. onSaveInstanceState() - для временных данных (Bundle)
override fun onSaveInstanceState(outState: Bundle) {
    outState.putString("KEY", "value")
    super.onSaveInstanceState(outState)
}
  1. ViewModel - сохраняет данные при повороте
  2. Сохраненные состояния (SavedStateHandle) в ViewModel
  3. Персистентное хранилище (Room, SharedPrefs) - для критичных данных

Для View можно использовать:

android:saveEnabled="true"
android:id="@+id/viewId"

чтобы автоматически сохранять состояние.