Какие знаешь способы сохранения состояния Activity

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

Ответ

В Android есть несколько способов сохранить состояние Activity:

  1. onSaveInstanceState() – сохраняет временные данные (например, текст в EditText) в Bundle при уничтожении Activity системой. Восстанавливается в onCreate() или onRestoreInstanceState().
override fun onSaveInstanceState(outState: Bundle) {
    super.onSaveInstanceState(outState)
    outState.putString("KEY_TEXT", editText.text.toString())
}
  1. ViewModel – сохраняет данные при повороте экрана (пересоздании Activity). Живет дольше Activity, но уничтожается при окончательном закрытии приложения.

  2. SharedPreferences – для простых данных, которые нужно сохранять между сессиями (настройки, логин и т.д.).

  3. База данных (Room) – для сложных или больших объемов данных, которые должны сохраняться между запусками приложения.

  4. Сохранение в файл – для специфичных случаев, когда нужно хранить данные в файловой системе.

Для UI-состояния лучше использовать ViewModel + SavedStateHandle, а для постоянных данных – Room или SharedPreferences.