Ответ
На сохранение состояния View влияют:
-
onSaveInstanceState() - сохраняет временные данные при уничтожении активити (например, поворот экрана). Нужно переопределить и сохранить данные в
Bundle. -
View с ID - только View с установленным android:id сохраняют состояние автоматически.
-
Поведение View - не все View сохраняют состояние по умолчанию (например, EditText сохраняет текст, а Button - нет).
Пример сохранения состояния:
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("KEY", importantData)
}
-
Конфигурационные изменения - при повороте система уничтожает и пересоздает активити, но сохраняет View-состояние.
-
Фрагменты - setRetainInstance(true) сохраняет экземпляр фрагмента, но не его View.