Ответ
В Android есть несколько способов сохранить данные при пересоздании Activity:
- onSaveInstanceState() – для сохранения простых данных (Bundle). Восстанавливается в onCreate() или onRestoreInstanceState().
override fun onSaveInstanceState(outState: Bundle) {
outState.putString("KEY", "value")
super.onSaveInstanceState(outState)
}
-
ViewModel – сохраняет данные при повороте экрана (но не при убийстве процесса). Лучший способ для UI-данных.
-
Сохранение в SharedPreferences/БД – для критичных данных, которые должны пережить убийство процесса.
-
onRetainNonConfigurationInstance() (устаревший) – для сохранения тяжелых объектов.
Для сложных сценариев часто комбинируют ViewModel + сохранение в БД/SharedPrefs.