Я пытаюсь создать JobScheduler
, который периодически запускается с интервалом в 15 минут. критерий для запуска задания - сетевое соединение. проблема заключается в том, что когда критерии не выполняются за один интервал, например, Интернет не подключен, это невыполненное задание выполняется в следующем интервале, сразу же после следующего запланированного задания. например, если я отключаю соединение WiFi на 30 минут, при включении я сразу получаю 2 выхода. очевидно, это не логичное поведение. в чем проблема?
JobScheduler jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName jobService = new ComponentName(this, LoggingService.class);
JobInfo jobInfo = new JobInfo.Builder(110, jobService).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).
setPeriodic(15 * 60 * 1000).build();
jobScheduler.cancelAll();
jobScheduler.schedule(jobInfo);
и
@Override
public boolean onStartJob(JobParameters params) {
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
Log.i("log","running job!");
jobFinished(params,false);
}
});
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
return false;
}