web-dev-qa-db-fra.com

Est-il correct de lier un ViewModel à un service?

J'ai commencé à utiliser des composants d'architecture dans mon application et j'apprends toujours à l'utiliser.

Dans mon application, j'ai une activité montrant différents fragments séquentiellement. Dans certains d'entre eux, je dois communiquer avec un service d'arrière-plan afin de recevoir des données de capteurs BLE externes. Étant donné que je dois interagir avec le service dans plus d'un fragment, je me demande si ViewModel est le bon endroit où faire la liaison. J'ai regardé autour de moi mais je n'ai pas trouvé de réponse.

Y a-t-il des problèmes de liaison d'un service à l'intérieur d'un ViewModel?

16
hara

Il n'est pas conseillé d'utiliser Android classes de framework dans ViewModels.

Voici le lien sur le blog de Google Developers avec l'explication détaillée: ViewModels et LiveData: Patterns + AntiPatterns

Idéalement, ViewModels ne devrait rien savoir sur Android. Cela améliore la testabilité, la sécurité des fuites et la modularité. Une règle générale consiste à vous assurer qu'il n'y a pas d'importations Android. * Dans vos ViewModels (avec des exceptions comme Android.Arch. *). Il en va de même pour les présentateurs.

Ne pas informer ViewModels (et les présentateurs) des classes de framework Android

8
Igor Bubelov