Вопрос проверяет знание способов сохранения данных при пересоздании Activity.
onSaveInstanceState() — для простых данных (Bundle).
ViewModel — для сложных данных (переживает смену конфигурации).
Свои Retain-фрагменты — устаревший способ.
1. Через onSaveInstanceState:
override fun onSaveInstanceState(outState: Bundle) {
outState.putString("KEY", "value")
super.onSaveInstanceState(outState)
}
override fun onCreate(savedInstanceState: Bundle?) {
val value = savedInstanceState?.getString("KEY")
} 2. Через ViewModel:
class MyViewModel : ViewModel() {
val data = MutableLiveData<String>()
}
// В Activity:
private val viewModel by viewModels<MyViewModel>() 3. Другие способы:
Сохранение в базу данных (Room).
Использование onRetainCustomNonConfigurationInstance() (устарело).
Вывод:ViewModel — лучший способ для сохранения данных при повороте экрана.