Android JobScheduler:如果你用周期性时间安排同一个作业,它会再次开始周期吗?

Android JobScheduler:如果你用周期性时间安排同一个作业,它会再次开始周期吗?,android,android-jobscheduler,Android,Android Jobscheduler,如果我安排了相同的定期作业(相同的作业ID),并且作业已经安排好了,会发生什么情况?它是否从一开始就重新开始它的周期 例如,我调用此方法两次: JobInfo myLongJob = new JobInfo.Builder( JOB_ID, new ComponentName(context, JobSchedulerLongService.class.getName()) ).setPeriodic(10000) .build(

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

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

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

    jobScheduler.schedule(myLongJob);

第二次调度作业是否会导致周期计时器再次开始计数?

我在执行一些测试后发现它:

第二次调度作业是否会导致周期计时器再次开始计数

是的!和…

这将取决于:

  • 如果正在执行作业:将导致第一个作业停止(调用onStopJob方法)并重新启动
  • 如果作业未执行:将重新开始倒计时
添加了@Gauthier:

jobId-int:应用程序为此作业提供的id。随后的取消呼叫, 或使用相同jobId创建的作业将更新先前存在的作业 使用相同的id。 [链接到此文档](,android.content.ComponentName))


还值得一看JobInfo生成器:android.content.ComponentName):使用相同jobId创建的作业将使用相同id更新先前存在的作业。是否有方法检查我的作业是否已安排?我不会重新安排它。@Sandepkumar是的,您可以使用
调度程序。getAllPendingJobs()
检查其他问题: