Basé sur les différents problèmes signalés sur le WorkManager le bugtracker, leur documentation n'est pas complètement précis sur le comportement exact de la WorkManager dans de tels cas de bord.
Sur certains appareils, les applications sont la force arrêté lorsque l'application est désactivée dans le gestionnaire des tâches, afin que la partie est prévu. ... source
Malheureusement, certains appareils de mettre en œuvre de tuer l'application à partir de l'récents menu comme une force d'arrêt. Stock Android ne fait pas cela. Lorsqu'une application est en vigueur arrêté, il ne peut pas exécuter les travaux, de recevoir des alarmes ou des émissions, etc. Donc, malheureusement, il est impossible pour nous d'y remédier le problème réside dans le système d'exploitation et il n'y a pas de solution de contournement. source
Le seul problème que nous avons rencontré est le cas où certains en chine Oem traiter mouvement du doigt de Récents comme une force d'arrêt. Lorsque cela se produit, WorkManager planifier toutes les tâches en attente, la prochaine fois que l'application démarre. Étant donné que c'est un CDD de violation, il n'y a pas beaucoup plus que WorkManager pouvez le faire compte tenu de son client de la bibliothèque. source
Pour ajouter à cela, si le fabricant d'un appareil a décidé de modifier stock Android à la force d'arrêter l'application, WorkManager va arrêter de travailler (comme JobScheduler, les alarmes, les récepteurs de radiodiffusion, etc.). Il n'y a aucun moyen de contourner cela. Certains fabricants de périphériques ce faire, malheureusement, donc dans ce cas WorkManager cessera de fonctionner jusqu'à ce que la prochaine fois que l'application est lancée. source
Avec des tests intenses d'un OneTimeWorkRequest
(sans contraintes) sur un Pixel 2 XL avec le stock android, le comportement est le suivant:
-
Le gestionnaire des tâches de proximité:
- Le travail continue (après un peu)
-
Redémarrer l'appareil (travail en cours):
- Le travail se poursuit après le redémarrage fait
-
Informations sur l'application "Forcer l'arrêt":
- Arrêts de travail, ne reprendra que lorsque l'application est lancée à nouveau
-
Redémarrer l'appareil (travail a été "Forcer l'arrêt"):
- Le travail ne continue pas jusqu'à ce que l'application est relancée
Vous pouvez trouver une liste complète des différents OEM comportements sur dontkillmyapp.com. Il semble que l'Android équipe remercie également de cette question et a ajouté un test pour cela dans leurs CTS de test pour Android Q. source