Могут ли данные в onSaveInstanceState пережить смерть процесса

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

Ответ

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

  1. SharedPreferences - для простых данных
  2. Локальную БД (Room) - для сложных структур
  3. Файлы - для больших данных

Пример сохранения в onSaveInstanceState:

override fun onSaveInstanceState(outState: Bundle) {
    super.onSaveInstanceState(outState)
    outState.putString("KEY", "value")
}

Для восстановления - onCreate(savedInstanceState: Bundle?) или onRestoreInstanceState().