如果不满足条件,android JobScheduler将运行多次

时间:2019-10-04 16:20:31

标签: android android-jobscheduler

我正在尝试创建一个JobScheduler,它以15分钟的间隔定期运行。运行作业的标准是网络连接。问题是,如果在一个时间间隔内不符合条件,例如如果未连接Internet,则此失败的作业将在下一个间隔运行,并与下一个计划的作业立即运行。例如,如果我关闭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;
}

0 个答案:

没有答案
相关问题