Как хранятся данные в Activity при изменении конфигурации

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

Ответ

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

  1. onSaveInstanceState() – для временного хранения простых данных (Bundle)
override fun onSaveInstanceState(outState: Bundle) {
    outState.putString("KEY", "value")
    super.onSaveInstanceState(outState)
}
  1. ViewModel – сохраняет данные при изменениях конфигурации (рекомендуемый способ)
val viewModel: MyViewModel by viewModels()
  1. Сохраненные экземпляры (Retained Fragments) – устаревший способ, лучше использовать ViewModel

Для сложных данных (например, Bitmap) используйте ViewModel + репозиторий или сохраняйте в файлы/БД. Bundle подходит только для небольших примитивов (ограничение ~1MB).