新しいJobScheduler(compat by tatarka)でバックグラウンドリフレッシュサービスを実装しようとしています。これが私のサービスです
@Override
public boolean onStartJob(JobParameters params) {
Timber.i("on start job: " + params.getJobId());
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
Timber.i("on stop job: " + params.getJobId());
return true;
}
ここに私のJobInfoがあります
public void scheduleJob(View v) {
JobInfo job = new JobInfo.Builder(kJobId++ /*jobid*/, new ComponentName(getActivity(), RefreshJobService.class))
.setPeriodic(2000)
.build();
mTestService.scheduleJob(job);
}
ログを見ると、私のジョブは常に 1 分間動作することがわかります
12-31 12:38:03.884 10059-10059/@/RefreshJobService﹕ on stop job: 0
12-31 12:39:03.891 10059-10059/@/RefreshJobService﹕ on start job: 0
12-31 12:40:03.911 10059-10059/@/RefreshJobService﹕ on stop job: 0
12-31 12:42:08.841 10059-10059/@/RefreshJobService﹕ on start job: 0
12-31 12:43:08.858 10059-10059/@/RefreshJobService﹕ on stop job: 0
なぜ?定期的に 2000 ミリ秒に設定されていますが、どの値もジョブの 1 分間隔には影響しません。なんで?