我使用JobScheduler启动JobService(JobSchedulerRefreshService)来刷新一些外部信息。 JobScheduler设置为定期运行。看到这段代码:
ComponentName serviceName = new ComponentName(this, JobSchedulerRefreshService.class);
JobInfo jobInfo = new JobInfo.Builder(REFRESH_JOB_ID, serviceName)
.setPeriodic(refreshInterval)
.setPersisted(true) // task remains active after reboot
.setRequiredNetworkType(networkType)
.setBackoffCriteria(initialBackoffMillis, backoffPolicy)
.build();
int result = scheduler.schedule(jobInfo);
if (result == JobScheduler.RESULT_SUCCESS) {
Log.e(TAG, "Job (re-)scheduled successfully.");
}
用户可以在首选项中设置刷新周期应该是什么。一旦首选项发生更改,就会使用新的refreshInterval
重新安排JobScheduler。但是,只要使用scheduler.schedule(jobInfo)
重新安排作业,即使尚未通过时间段,它也会启动作业服务JobSchedulerRefreshService
。
如何在每次重新安排作业时阻止JobService自动启动?