Что произойдет при повороте экрана

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

Ответ

При повороте экрана Activity уничтожается и создается заново (onDestroy()onCreate()). Чтобы сохранить состояние, используйте:

  1. onSaveInstanceState() - для временных данных (Bundle)
override fun onSaveInstanceState(outState: Bundle) {
    outState.putString("KEY", "value")
    super.onSaveInstanceState(outState)
}
  1. ViewModel - для бизнес-логики (переживает поворот)
  2. android:configChanges в манифесте (не рекомендуется) - если обрабатывать поворот вручную через onConfigurationChanged()

Лучшие практики:

  • Хранить данные в ViewModel
  • Восстанавливать UI состояние через SavedStateHandle в ViewModel
  • Для фрагментов использовать setRetainInstance(true) (устарело в favor ViewModel)