0

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)

Vyacheslav
  • 26,359
  • 19
  • 112
  • 194

0 Answers0