Sobes.tech
Назад к вопросам
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, чтобы обеспечить поддержку сохранения состояния.