2016-05-05 14 views
12

Cosa succede se pianifico lo stesso lavoro periodico (stesso ID lavoro) e il lavoro è già stato programmato? Ricomincia il suo periodo dall'inizio?JobScheduler Android: se pianifichi lo stesso lavoro con un tempo periodico, ricomincia il periodo?

Per esempio, io chiamo questo metodo per due volte:

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

    jobScheduler.schedule(myLongJob); 

Vuol pianificazione del processo seconda volta causano il timer periodico per iniziare a contare di nuovo?

risposta

9

ho trovato dopo aver fatto alcuni test:

Vuol pianificazione del processo per la seconda volta causano il timer periodico per iniziare a contare di nuovo?

Sì! e ...

Dipenderà:

  • Se viene eseguito il lavoro: farà sì che il primo lavoro per fermare (chiamando onStopJob metodo) e ricominciare.
  • Se il lavoro non è in esecuzione: riavvierà il conto alla rovescia.

Aggiunto commento veramente utile da @Gauthier:

jobId - int: Application-id prevista per questo lavoro. Le chiamate successive per annullare, o i lavori creati con lo stesso jobId, aggiorneranno il lavoro preesistente con lo stesso id. [link a questo documento] (http://developer.android.com/reference/android/app/job/JobInfo.Builder.html#JobInfo.Builder(int, android.content.ComponentName))

+2

anche la pena di guardare il costruttore JobInfo: http://developer.android.com/reference/android/app/job/JobInfo. Builder.html # JobInfo.Builder (int% 2C android.content.ComponentName) : i lavori creati con lo stesso jobId aggiorneranno il lavoro preesistente con lo stesso id. – Gauthier

+0

Grazie a @Gauthier! Non ho visto questa parte così tante grazie :)! – Juancho

+0

c'è un modo per controllare se il mio lavoro è già programmato? Non lo riprogrammare. –

Problemi correlati