ViewModel – абстрактный класс, упрощающий реализацию паттерна MVVM в Android-приложении.В общем случае
ViewModel используется следующим образом:1. Создается наследник класса
ViewModel, который реализует VM-логику в MVVM компоненте.2. Объект
ViewModel инстанциируется во View-слое (активити или фрагменте) с помощью delegated property viewModels():val viewModel: MyViewModel by viewModels()3. Активити или фрагмент использует объект
viewModel для получения обновлений UI.Объект, созданный с помощью
by viewModels() переживает пересоздание активити и фрагмента при изменении конфигурации (например при повороте экрана). Объект
ViewModel уничтожается только в случае, если соответсвующий View-класс не пересоздается. Для активити это происходит, когда вызывается onDestroy() после вызова метода finish(). В случае фрагмента – после вызова onDetach().При уничтожении объекта
ViewModel вызывается метод onCleared().