Ответ
Использование onSaveInstanceState() для сохранения простых данных в Bundle. Пример:
override fun onSaveInstanceState(outState: Bundle) {
outState.putString("KEY", "value")
super.onSaveInstanceState(outState)
}
ViewModel - сохраняет данные при повороте экрана. Данные живут до уничтожения активити/фрагмента:
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
Сохранение в постоянное хранилище:
- SharedPreferences
- Room Database
- Файлы
Для фрагментов - setRetainInstance(true) (устарел, лучше использовать ViewModel)
Для сложных объектов - реализация Parcelable/Serializable и сохранение в Bundle