Ответ
В Android есть несколько способов сохранить состояние Activity:
- onSaveInstanceState() – сохраняет временные данные (например, текст в EditText) в Bundle при уничтожении Activity системой. Восстанавливается в onCreate() или onRestoreInstanceState().
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("KEY_TEXT", editText.text.toString())
}
-
ViewModel – сохраняет данные при повороте экрана (пересоздании Activity). Живет дольше Activity, но уничтожается при окончательном закрытии приложения.
-
SharedPreferences – для простых данных, которые нужно сохранять между сессиями (настройки, логин и т.д.).
-
База данных (Room) – для сложных или больших объемов данных, которые должны сохраняться между запусками приложения.
-
Сохранение в файл – для специфичных случаев, когда нужно хранить данные в файловой системе.
Для UI-состояния лучше использовать ViewModel + SavedStateHandle, а для постоянных данных – Room или SharedPreferences.