Каким образом сохраняются данные в Activity при смене конфигурации, помимо использования объекта Bundle?
Ответ от нейросети
sobes.tech AI
Помимо сохранения состояния через объект Bundle в методах onSaveInstanceState и onRestoreInstanceState, в Android для сохранения данных при смене конфигурации можно использовать:
-
ViewModel из архитектурных компонентов Android. ViewModel живет дольше Activity при смене конфигурации и сохраняет данные, не теряя их при пересоздании Activity.
-
Retain Fragment — фрагмент с
setRetainInstance(true), который сохраняется при пересоздании Activity (устаревший подход). -
Сохранение данных в постоянном хранилище (например, SharedPreferences, база данных), если данные должны сохраняться между сессиями.
Пример использования ViewModel:
class MyViewModel : ViewModel() {
var data: String? = null
}
class MyActivity : AppCompatActivity() {
private lateinit var viewModel: MyViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
// Используем viewModel.data, она сохранится при смене конфигурации
}
}
Таким образом, ViewModel — предпочтительный способ сохранения данных при смене конфигурации без использования Bundle.