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

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

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

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

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

  • Job Scheduler与后台服务
  • JobScheduler发布作业两次(不是预期的)
  • Android JobScheduler执行了好几次
  • Job Scheduler不在Android N上运行
  • Android JobScheduler总是工作1分钟
  • Android java.lang.IllegalArgumentException:没有这样的服务ComponentInfo JobScheduler
  • Android JobScheduler - 无法创建持久作业
  • 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))