Ich versuche, Hintergrund-Refreshing-Service mit neuen JobScheduler zu implementieren (compat by tatarka). Hier ist mein DienstAndroid JobScheduler funktioniert immer für 1 Minute
@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;
}
Hier ist meine Jobinfo
public void scheduleJob(View v) {
JobInfo job = new JobInfo.Builder(kJobId++ /*jobid*/, new ComponentName(getActivity(), RefreshJobService.class))
.setPeriodic(2000)
.build();
mTestService.scheduleJob(job);
}
In log ich sehe, dass meine Arbeit immer für 1 Minute arbeitet 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
Warum? Ich bin regelmäßig auf 2000ms eingestellt, jeder Wert hat keinen Einfluss auf 1 Minute Intervall für den Job. Warum?
Haben Sie jemals herausgefunden, warum das so war? – Papajohn000
@ Papajohn000 Nein, habe ich nicht. – onCreate
Ich weiß nicht, ob es immer noch relevant ist, aber es könnte eine minimale Zeitgrenze für den Job-Scheduler geben. Ich weiß, dass der Alarm Manager eine Mindestgrenze von 2 Minuten hat. – Papajohn000