Какие знаешь способы сохранения данных экрана при пересоздании процесса приложения

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

Ответ

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

  1. onSaveInstanceState() – для сохранения простых данных (Bundle). Восстанавливается в onCreate() или onRestoreInstanceState().
override fun onSaveInstanceState(outState: Bundle) {
    outState.putString("KEY", "value")
    super.onSaveInstanceState(outState)
}
  1. ViewModel – сохраняет данные при повороте экрана (но не при убийстве процесса). Лучший способ для UI-данных.

  2. Сохранение в SharedPreferences/БД – для критичных данных, которые должны пережить убийство процесса.

  3. onRetainNonConfigurationInstance() (устаревший) – для сохранения тяжелых объектов.

Для сложных сценариев часто комбинируют ViewModel + сохранение в БД/SharedPrefs.