У меня проблема с расписанием заданий с помощью JobScheduler в новом Android API 21. Это код, в котором я планирую задание с интервалом в 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
Это странно, потому что задание должно выполняться как минимум 1 раз в течение 1 минуты, как я установил с помощью метода setPeriodic(60000). Также любопытно, как увеличивается интервал между прогонами. На данный момент время — среда, 18 марта, 09:09:00 BRT 2015, и работа больше не выполняется.
Это проблема с API JobScheduler? (Я использую Nexus 5 с Android 5.0.1)