2016-05-05 9 views
12

Was passiert, wenn ich denselben periodischen Job plane (gleiche Job-ID) und der Job bereits geplant wurde? Beginnt es seine Periode von Anfang an?Android JobScheduler: Wenn Sie denselben Job mit periodischer Zeit planen, beginnt der Zeitraum erneut?

Zum Beispiel nenne ich diese Methode zweimal:

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

    jobScheduler.schedule(myLongJob); 

Hat die Planung des Job zweite Mal die periodische Timer verursacht erneut mit dem Zählen zu beginnen?

Antwort

9

fand ich es nach ein paar Tests machen:

Hat die Planung der Arbeit zum zweiten Mal die periodische Timer verursachen erneut mit dem Zählen zu beginnen?

Ja! und ...

Es wird davon abhängen:

  • Wenn der Auftrag ausgeführt wird: Wird der erste Job führen zu stoppen (Aufruf onStopJob-Methode) und erneut starten.
  • Wenn der Job nicht ausgeführt wird: Starten Sie einfach den Countdown erneut.

Added wirklich nützlich Kommentar von @Gauthier:

jobId - int: Anwendungs ​​bereitgestellt ID für diesen Job. Nachfolgende Aufrufe zum Abbrechen, oder Jobs, die mit derselben Job-ID erstellt wurden, aktualisieren den bereits vorhandenen Job mit derselben ID. [Link zu diesem doc] (http://developer.android.com/reference/android/app/job/JobInfo.Builder.html#JobInfo.Builder(int, android.content.ComponentName))

+2

auch wert auf dem Erbauer Jobinfo suchen: http://developer.android.com/reference/android/app/job/JobInfo. Builder.html # JobInfo.Builder (int% 2C android.content.ComponentName) : Jobs, die mit derselben Job-ID erstellt wurden, aktualisieren den bereits vorhandenen Job mit derselben ID. – Gauthier

+0

Danke @Gauthier! Ich habe diesen Teil nicht so vielen Dank gesehen :)! – Juancho

+0

Gibt es eine Möglichkeit zu überprüfen, ob meine Arbeit bereits geplant ist? Ich werde es nicht neu planen. –

Verwandte Themen