ViewModel хранит и управляет UI-связанными данными c учетом жизненного цикла. Он переживает изменения конфигурации (повороты экрана, изменения раскладки), предотвращая потерю данных.
Ключевые особенности:
Пример использования:
kotlin
kotlin
Срок жизни: ViewModel живет до тех пор, пока жив связанный с ним Scope (например, Activity). При завершении Scope ViewModel уничтожается.
ViewModelProviders (сейчас ViewModelProvider) использовался для получения экземпляра ViewModel до Kotlin. В Kotlin рекомендуется использовать ViewModelProvider(this).get(MyViewModel::class.java).
Основные преимущества ViewModel перед обычными классами для хранения UI-состояния:
Недостатки: