作业调度程序的作业调度不一致

时间:2017-07-23 11:16:18

标签: java android android-notifications job-scheduling android-jobscheduler

我使用作业调度程序在任何时间间隔发送通知,让我们定期说4分钟,所以我用了

  

setPeriodic(持续时间* 60 * 1000); //持续时间是4分钟

但是它的不一致首先它在1分钟或2分钟之后发送通知然后1分钟然后4分钟然后8分钟我也猜它缓存了之前的持续时间,它在这里我是如何实现代码的:

NULL

3 个答案:

答案 0 :(得分:1)

您已使用Android L上的JobScheduler以4分钟的间隔安排了一项作业。一旦安排为定期,此作业只能在您设置的时间间隔内的任何时间运行一次(开始:您调用schedule()的时间,结束:加4分钟)。它只会在完成运行的间隔后再次运行,仅在新范围内....此行为将一直持续到您取消作业为止。

  

例如:作业定期为4分钟,1分钟后执行;根据4分钟的范围,这项工作将在3分钟后再次运行。在新的范围内,它可以在4分钟内随时执行。

如果您不希望JobScheduler出现此定期行为,请考虑使用AlarmManager服务来安排作业每4分钟触发一次通知,并在触发通知后重新安排通知。

Obs。: JobScheduler在内部使用AlarmManager服务,安排需要安排的作业,定义运行此作业的开始和结束时间。

  

Android L源代码参考:

     

答案 1 :(得分:0)

这是按设计工作的。 (以及JobScheduler的" power"的一部分)

来自文档:

  

setPeriodic():指定此作业应以提供的间隔重复出现   柔性。 作业可以在弹出长度为的窗口中随时执行   期末。

答案 2 :(得分:0)