Доступ к viewModel внутри службы в android - PullRequest
1 голос
/ 11 июля 2020

как мы можем инициализировать viewModel в сервисе . во фрагменте мы делаем это с помощью делегата Kotlin « by activityViewModels ». или мы можем сделать это с помощью ViewModelProvider (). get . но, насколько я понимаю, мы не можем сделать это в сервисе, потому что нам нужна « ViewModelStoreOwner », например активность или фрагмент.

так что даже лучшая практика для инициализации ViewModel в услуга?

здесь мой проект .

1 Ответ

1 голос
/ 11 июля 2020

Не рекомендуется использовать ViewModel в сервисе. Вы можете вызвать свой репозиторий из самой службы.

https://github.com/android/architecture-components-samples/issues/137#issuecomment -327854042

ViewModel следует использовать вместе с Activity или Fragment, поэтому ему суждено жить на уровне пользовательского интерфейса вашего приложения. Поэтому я не рекомендую использовать ViewModel в службе. Создайте другой класс, который будет использоваться в Сервисе и, при необходимости, в ViewModel. Таким образом вы обеспечиваете разделение проблем и избегаете возлагать на ViewModel больше ответственности, чем необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...