Android JobScheduler。我可以每15秒安排工作吗

时间:2018-06-28 03:22:45

标签: android android-jobscheduler

我的代码正常工作。但是我不确定这在所有设备上是否始终有效。 我可以像这样使用JobScheduler吗?

启动方法:

public static void schedule() {
    JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);

    JobInfo job = new JobInfo.Builder(1, new ComponentName(context, MySchedulerService.class))
            .setMinimumLatency(15000)
            .build();

    scheduler.schedule(job);
}

服务:

public static class MySchedulerService extends JobService {

    public boolean onStartJob(JobParameters params) {
        schedule();
       /*   Business code   */
        stopSelf();
        return false;
    }

    public boolean onStopJob(JobParameters params) {
        return false;
    }
}

1 个答案:

答案 0 :(得分:2)

  

我可以每15秒安排工作

不。两个时间表之间的最短持续时间约为15分钟。您可以使用getMinPeriodMillis()

轻松查询此信息
  

注意:

     

尝试在计划作业时声明一个较小的时间段   将会导致工作仍然是定期的,但是将与此一起运行   有效期。

对于setMinimumLatency,基于documentation

  

毫秒,此工作将不被考虑   执行。

这并不意味着作业将在15秒后立即执行,并且当first phase of doze模式启动时,该作业无法从Android N可靠。