web-dev-qa-db-fra.com

Android JobScheduler: si vous planifiez le même travail avec une heure périodique, recommence-t-il la période?

Que se passe-t-il si je planifie le même travail périodique (même ID de travail) et que le travail a déjà été planifié? Est-ce qu'il recommence sa période depuis le début?

Par exemple, j'appelle cette méthode deux fois:

JobInfo myLongJob = new JobInfo.Builder(
            JOB_ID,
            new ComponentName(context, JobSchedulerLongService.class.getName())
    ).setPeriodic(10000)
     .build();

    jobScheduler.schedule(myLongJob);

La planification du travail une deuxième fois fait-elle recommencer le comptage périodique?

19
Juan Saravia

Je l'ai trouvé après avoir fait quelques tests:

La planification du travail pour la deuxième fois fait-elle recommencer le comptage périodique?

Oui! et ...

Cela dépendra:

  • Si le travail est en cours d'exécution: entraînera l'arrêt du premier travail (appel de la méthode onStopJob) et redémarrera.
  • Si le travail n'est pas en cours d'exécution: recommencera simplement le compte à rebours.

Ajout d'un commentaire vraiment utile de @Gauthier:

jobId - int: ID fourni par l'application pour ce travail. Les appels suivants pour annuler, ou les travaux créés avec le même jobId, mettront à jour le travail préexistant avec le même identifiant. [lien vers ce document] ( http://developer.Android.com/reference/Android/app/job/JobInfo.Builder.html#JobInfo.Builder (int , Android.content.ComponentName) )

16
Juancho