20

如果我安排了相同的定期作业(相同的作业 ID)并且该作业已被安排,会发生什么情况?它会从头开始吗?

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

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

    jobScheduler.schedule(myLongJob);

第二次安排作业是否会导致定期计时器再次开始计数?

4

1 回答 1

17

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

第二次安排作业是否会导致定期计时器再次开始计数?

是的!和...

这将取决于:

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

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

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

于 2016-05-05T20:08:36.607 回答