Sto cercando di implementare il servizio di aggiornamento in background con il nuovo JobScheduler (compatibile con tatarka). Ecco il mio servizioAndroid JobScheduler funziona sempre per 1 minuto
@Override
public boolean onStartJob(JobParameters params) {
Timber.i("on start job: " + params.getJobId());
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
Timber.i("on stop job: " + params.getJobId());
return true;
}
Ecco il mio JobInfo
public void scheduleJob(View v) {
JobInfo job = new JobInfo.Builder(kJobId++ /*jobid*/, new ComponentName(getActivity(), RefreshJobService.class))
.setPeriodic(2000)
.build();
mTestService.scheduleJob(job);
}
Nel registro vedo che il mio lavoro funziona sempre per 1 minuto 12-31 12:38:03.884 10059-10059/@/RefreshJobService﹕ on stop job: 0 12-31 12:39:03.891 10059-10059/@/RefreshJobService﹕ on start job: 0 12-31 12:40:03.911 10059-10059/@/RefreshJobService﹕ on stop job: 0 12-31 12:42:08.841 10059-10059/@/RefreshJobService﹕ on start job: 0 12-31 12:43:08.858 10059-10059/@/RefreshJobService﹕ on stop job: 0
Allora perché? Sono impostato periodicamente su 2000 ms, qualsiasi valore non influenza l'intervallo di 1 minuto per il lavoro. Perché?
Hai mai capito perché era? – Papajohn000
@ Papajohn000 No, non l'ho fatto. – onCreate
Non so se è ancora pertinente, ma potrebbe esserci un limite minimo per il tempo nel pianificatore di lavoro. So che Alarm Manager ha un limite minimo di 2 minuti. – Papajohn000