Despite the documentation setOverrideDeadline
https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#setOverrideDeadline(long)
this parameter works as timer task. I mean it wakes up the device each milliseconds delay.
int type = entity.getJobId();
long now = System.currentTimeMillis();
PersistableBundle extras = new PersistableBundle();
extras.putInt(A_.JOBSCHEDULER_TYPE, type);
JobInfo jobInfo = new JobInfo.Builder(type, new ComponentName(ctx, entity.getJobClass()))
.setMinimumLatency(nextTime - now)
.setOverrideDeadline(TimeUnit.SECONDS.toMillis(60))
.setExtras(extras)
.build();
JobScheduler jobScheduler =
(JobScheduler) ctx.getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(jobInfo);
if I use this setOverrideDeadline(TimeUnit.SECONDS.toMillis(60))
parameter the JobService wakes up repeatedly. Why?
On both Android 8.0 and Android 8.1
EDIT
Same behavior for both jobFinished(jobParams, false)
and jobFinished(jobParams, true)