Ответ
Для сохранения данных при повороте экрана используйте ViewModel или onSaveInstanceState().
1. ViewModel (рекомендуется для сложных данных):
class MyViewModel : ViewModel() {
var data: String = ""
}
// В Activity/Fragment
private val viewModel by viewModels<MyViewModel>()
viewModel.data = "Important info" // Сохраняется при повороте
2. onSaveInstanceState() (для простых данных):
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("KEY", "Important info")
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val savedData = savedInstanceState?.getString("KEY")
}
Разница:
- ViewModel сохраняется в памяти (быстрее, но очищается при завершении процесса)
- Bundle сохраняется системой (медленнее, но переживает завершение процесса)