我的代码正常工作。但是我不确定这在所有设备上是否始终有效。 我可以像这样使用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;
}
}
答案 0 :(得分:2)
我可以每15秒安排工作
不。两个时间表之间的最短持续时间约为15分钟。您可以使用getMinPeriodMillis()
轻松查询此信息注意:
尝试在计划作业时声明一个较小的时间段 将会导致工作仍然是定期的,但是将与此一起运行 有效期。
对于setMinimumLatency
,基于documentation:
毫秒,此工作将不被考虑 执行。
这并不意味着作业将在15秒后立即执行,并且当first phase of doze模式启动时,该作业无法从Android N可靠。