web-dev-qa-db-fra.com

Android Work Manager vs Services?

Dans mon Android j'ai plusieurs services d'intention qui s'exécutent l'un après l'autre et le tout premier service d'intention est déclenché par une diffusion. Je suis tombé sur Work Manager quelques jours il y a longtemps et j'ai vraiment aimé la simplicité des classes Worker et WorkManager. Quels sont les avantages et les inconvénients de Work Manager par rapport aux services d'intention réguliers? Dois-je passer à Work Manager maintenant étant donné que je devrais peut-être devoir écrire plus de services d'intention à l'avenir ? Aussi quelle option m'aiderait à tester le code facilement?

18
Sushobh Nadiger

WorkManager est livré avec les fonctionnalités suivantes:

  • Fournit des tâches qui peuvent survivre à la mort du processus
  • Il peut réveiller l'application et le processus de l'application pour effectuer le travail, garantissant ainsi que les travaux seront exécutés.
  • Permet l'observation du statut de travail et la possibilité de créer des chaînes de travail complexes
  • Permet le chaînage de travail qui permet de séparer de gros morceaux de travail en petits travaux et de les exécuter en fonction de différentes contraintes
  • Gère gracieusement le mode somnolence ou d'autres restrictions imposées par le système d'exploitation.

Voici les cas où il serait utile:

  • Exécution de tâches d'arrière-plan de longue durée comme le téléchargement de médias
  • Analyse et stockage des données dans la base de données.
  • Tâches critiques qui doivent survivre aux décès de processus

Dois-je passer au gestionnaire de travail maintenant compte tenu du fait que je devrai peut-être écrire plus de services intentionnels à l'avenir?

Dans la plupart des cas, il devrait remplacer IntentService, mais vous devez y réfléchir attentivement avant de l'utiliser. Il se pourrait que IntentService ne soit pas le meilleur choix à la première place.

WorkManager ne répond pas à toutes les tâches d'arrière-plan. PAR EXEMPLE. Vous ne devriez pas l'utiliser pour traiter les paiements car il n'a pas besoin de survivre à la mort du processus et ces tâches doivent être exécutées immédiatement. Pensez à utiliser le service de premier plan. Ce n'est pas non plus une bonne idée de les utiliser pour analyser les données et le contenu de la vue.

Vous devez vraiment évaluer si vous en avez besoin avant de l'utiliser. Étant donné que Google remodèle presque la façon dont nous codons, WorkManager serait la solution de nos problèmes de traitement en arrière-plan. Ce serait certainement l'option la plus importante car elle résume la gestion de plusieurs contraintes imposées par le système d'exploitation. Vous devriez envisager de l'utiliser pour de futures implémentations.

De plus, quelle option m'aiderait à tester le code facilement?

Google a également fourni une bibliothèque de tests qui facilite le test de WorkManager. Il est toujours en développement mais devrait devenir plus puissant avant sa sortie.

26
Sagar