Я уже некоторое время использую ViewModel из архитектуры Android и никогда не выставлял ViewModel в Context / Views (Android Framework / UI). Однако недавно я столкнулся с интересной проблемой.
При создании приложения для таймера, когда таймер запущен, служба запускается в фоновом режиме и запускает таймер. Таким образом, когда приложение закрыто, таймер по-прежнему работает на переднем плане в панели уведомлений, пока все таймеры не прекратятся. Однако это означает, что все мои объекты и состояние таймера содержатся в этой службе. Мой пользовательский интерфейс необходимо обновлять на каждом тике, но модель не обязательно нуждается в обновлении Как ViewModels вписывается в этот сценарий?
Должна ли активность получать LocalBroadcasts и каждый раз уведомлять ViewModel?
Должно ли состояние пользовательского интерфейса быть прочитано из Service-> Activity-> VM? Похоже, что Сервис - это ViewModel, но это не кажется эффективным.