Android JobScheduler:如果您定期安排同一项工作,是否再次开始这个阶段?

如果我安排相同的周期性作业(相同的作业ID)并且作业已经安排,会发生什么情况? 它是否从一开始就重新开始?

例如,我将这个方法调用两次:

JobInfo myLongJob = new JobInfo.Builder( JOB_ID, new ComponentName(context, JobSchedulerLongService.class.getName()) ).setPeriodic(10000) .build(); jobScheduler.schedule(myLongJob); 

第二次调度工作是否导致周期性定时器重新开始计数?

Solutions Collecting From Web of "Android JobScheduler:如果您定期安排同一项工作,是否再次开始这个阶段?"

我做了一些testing后发现它:

第二次调度工作是否使周期性定时器重新开始计数?

是! 和…

这将取决于:

  • 如果作业正在执行:将导致第一个作业停止(调用onStopJob方法)并重新启动。
  • 如果这个工作没有被执行:只是重新开始倒计时。

@Gauthier新增了真正有用的评论:

jobId – int:此作业的应用程序提供的标识。 随后的取消调用或使用相同jobId创build的作业将使用相同的ID更新预先存在的作业。 [链接到这个文档]( http://developer.android.com/reference/android/app/job/JobInfo.Builder.html#JobInfo.Builder ( int ,android.content.ComponentName))