Contexte
Google dispose de plusieurs solutions pour la planification des tâches, telles que JobScheduler
et GcmTaskService
. Chacun a ses propres avantages et inconvénients.
Récemment, Google a présenté une nouvelle bibliothèque appelée "Firebase JobDispatcher".
Le problème
Malheureusement, il y a très peu de choses à lire sur cette nouvelle API. En fait, il est vraiment difficile de trouver quoi que ce soit à son sujet.
La seule chose que j'ai trouvée est leur vidéo d'annonce et un échantillon . Mais même eux, il n'y a pas grand-chose à savoir sur cette API.
Les questions
En regardant les questions précédentes, les enquêtes et les comparaisons que j'ai faites avec les autres API ( ici par exemple), j'aimerais demander comment fonctionne la nouvelle API et savoir ce qu'il faut prendre en compte lors de son utilisation :
-
Un travail peut-il avoir des paramètres qui restent avec lui et peuvent même être modifiés si nécessaire ? Il est dit dans l'exemple " Un ensemble optionnel d'extras fournis par l'utilisateur. La valeur par défaut est un ensemble vide. " Est-ce que c'est ça ? Peut-il être modifié par le job lors de son exécution ?
-
Les emplois peuvent-ils être facilement reprogrammés ? On dit que " Un booléen indiquant si le job doit être répété. " . Comment choisir le moment de la reprogrammation ? J'ai essayé l'exemple, et j'ai choisi "récurrent", mais il ne semble pas s'exécuter à nouveau, seulement une fois.
-
Peut-il être protégé contre les emplois de la bibliothèque (en raison des identifiants uniques) ?
-
La mise à jour de l'application nécessite-t-elle une attention particulière (comme c'était le cas pour les API précédentes) ? Les tâches peuvent-elles encore être programmées après une mise à jour de l'application ? En testant l'échantillon, il semble que les tâches aient complètement disparu après une mise à jour de l'application. Peut-on l'éviter ?
-
Faut-il
RECEIVE_BOOT_COMPLETED
au cas où je voudrais que la tâche soit toujours planifiée même si l'appareil est redémarré ? L'exemple semble l'avoir fait. -
Est-il possible d'obtenir une liste de tous les travaux programmés et leurs informations (y compris les paramètres), et de pouvoir les annuler ou les modifier ?
-
Une tâche sera-t-elle supprimée lorsque l'application effacera les données ?
-
Est-il possible de dire à la tâche qu'il est préférable qu'elle soit exécutée dans une plage horaire (exemple : entre 7h00 et 8h00 du matin) ? Il est mentionné " ExecutionWindowTrigger - qui spécifie une fenêtre de temps dans laquelle le job doit être exécuté. ". C'est ça ? Que se passe-t-il quand il manque cette fenêtre ?
-
La méthode
onStartJob
surJobService
renvoie un booléen et la description de cette classe est " s'il y a encore du travail à faire. " Qu'est-ce que cela signifie ? Qu'est-ce que leneedsReschedule
paramètre dejobFinished
que signifie cette méthode ? Sont-elles liées les unes aux autres ? -
Y a-t-il des restrictions que je devrais connaître ? Par exemple, des valeurs minimales et maximales pour chacune des fonctions ?
1 votes
Bonjour, j'utilise cette librairie depuis quelques jours, pour le #2 elle est récurrente pour moi, mais elle ne semble pas honorer les nombres spécifiés dans la fenêtre d'exécution.
1 votes
@eriuzo Comment cela se reproduit-il pour vous ? toutes les secondes/minutes ? Comment avez-vous fait pour que ça marche ?
1 votes
Je n'ai pas enregistré les chiffres la première fois, laissez-moi les enregistrer, je posterai peut-être une réponse demain.
0 votes
J'ai eu le même problème. En particulier, cette fonctionnalité n'est pas bien expliquée dans la documentation de Google. Mais ce lien developer.Android.com/topic/performance/scheduling.html#af a été génial pour moi. Avez-vous déjà consulté ce document ? Maintenant je comprends pourquoi Google Firebase.JobSchedule