Назад к вопросам
Junior — Middle
80
Каким образом обеспечить сохранение состояния ViewModel при переходах между экранами?
Ответ от нейросети
sobes.tech AI
Для сохранения состояния ViewModel при переходах между экранами в Android рекомендуется использовать SavedStateHandle. Это специальный объект, который позволяет сохранять и восстанавливать данные ViewModel при пересоздании, например, при повороте экрана или навигации.
Пример использования:
class MyViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {
var userName: String?
get() = savedStateHandle["userName"]
set(value) {
savedStateHandle["userName"] = value
}
}
При навигации через Navigation Component можно передавать аргументы, которые автоматически сохраняются в SavedStateHandle. Таким образом, состояние ViewModel сохраняется и восстанавливается без дополнительного кода.
Если ViewModel создаётся вручную, можно использовать ViewModelProvider с SavedStateViewModelFactory, чтобы обеспечить поддержку сохранения состояния.