【发布时间】:2015-03-18 12:10:54
【问题描述】:
我对新 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();
My 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) 方法设置的作业应该在 1 分钟内至少执行 1 次。 运行之间的间隔如何增加也很好奇。此时时间是 Wed Mar 18 09:09:00 BRT 2015,Job 不再执行。
JobScheduler API 有问题吗? (我在装有 Android 5.0.1 的 Nexus 5 中运行)
【问题讨论】:
标签: android task scheduling jobs android-jobscheduler