Android JobScheduler:如果您使用定期时间安排相同的作业,它是否会再次开始这段时间?

时间:2016-05-05 20:04:58

标签: android android-jobscheduler

如果我安排相同的定期工作(相同的工作ID)并且工作已经安排,会发生什么?它从一开始就再次开始吗?

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

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

    jobScheduler.schedule(myLongJob);

第二次安排作业会导致周期性计时器再次开始计数吗?

1 个答案:

答案 0 :(得分:14)

我在做了一些测试后发现了它:

  

第二次安排作业会导致周期性计时器再次开始计数吗?

是!和...

这取决于:

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

从@Gauthier添加了非常有用的评论:

  

jobId - int:此作业的应用程序提供的ID。随后要求取消,   或者使用相同jobId创建的作业将更新预先存在的作业   具有相同的ID。   [链接到此doc](http://developer.android.com/reference/android/app/job/JobInfo.Builder.html#JobInfo.Builder(int,android.content.ComponentName))