我在使用新的Android API 21中的JobScheduler时遇到了任务调度的问题。以下是我用60秒间隔安排任务的代码:
ComponentName serviceName = new ComponentName(this, MyJobService.class);
JobInfo jobInfo = new JobInfo.Builder(0, serviceName)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setPeriodic(60000)
.build();
我的JobService只在Logcat中打印运行时间,但日志显示服务在这些时刻运行:
03-18 08:37:26.334: I/JOB(32662): Wed Mar 18 08:37:26 BRT 2015
03-18 08:37:56.364: I/JOB(32662): Wed Mar 18 08:37:56 BRT 2015
03-18 08:39:21.418: I/JOB(32662): Wed Mar 18 08:39:21 BRT 2015
03-18 08:41:51.670: I/JOB(32662): Wed Mar 18 08:41:51 BRT 2015
03-18 08:45:52.192: I/JOB(32662): Wed Mar 18 08:45:52 BRT 2015
03-18 08:54:20.678: I/JOB(32662): Wed Mar 18 08:54:20 BRT 2015
奇怪的是,由于我使用了setPeriodic(60000)方法,Job 应该每 1 分钟至少执行 1 次。而且,它运行时间间隔增加的情况也很奇怪。此时时间是2015年3月18日星期三09:09:00 BRT,但 Job 没有再被执行过。
这是不是与 JobScheduler API 有关问题?(我在 Nexus 5 上运行 Android 5.0.1)