Android JobScheduler 错误:重启后延迟增加(参数 minimumLatency)
Android JobScheduler bug: delay is increased after reboot (param minimumLatency)
我正在使用 Android JobScheduler,使用 JobInfo.Builder() 在指定时间启动我的服务。
一切正常,即使我的设备进入睡眠模式。但是当我重新启动设备时,所有的作业仍然存在,但它们的延迟已经增加到一个惊人的数字。
我正在创建具有指定延迟(参数 minimumLatency)的作业并使用参数 setPersisited(true) 以便在重启后保留作业。
例如,假设我将 minimumLatency 设置为 120_000ms。
如果我不重新启动,我的任务会在指定的延迟后正确执行。
但是如果我在任务之前重新启动,我的 mimimumLatency 会增加到大约 400 亿毫
我也试过 setOverrideDeadline() 各种延迟,没用
这是我创建作业的方式:
JobInfo.Builder(id, componentName)
.setExtras(bundle)
.setPersisted(true)
.setMinimumLatency(initialDelay)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.build()
.let {
context.getSystemService(JobScheduler::class.java). schedule(it)
}
如果您对此问题有任何线索,请告诉我。
如有任何帮助,我们将不胜感激。
谢谢
我找到了问题和解决方法。也许这会帮助某人。
这实际上是一个错误。
当设备启动时,在日志中我可以看到设备的日期是 2016 年 12 月 31 日。
然后,稍后当连接到互联网时,系统的日期将更新为今天的日期。
所以我想我增加的延迟是从今天到 2016 年 12 月 31 日之间的时间!
我认为 Android 是在设置日期之前启动 JobScheduler 服务,从而让他们认为它会在 1 年半内。
我想这取决于设备。我在 Android 电视上。
无论如何,这显然不能直接解决,所以我在我的服务中实现了我自己的重新安排,我没有保留 persited 参数。
这样做实际上对我的项目和未来所需的自定义更好。
我正在使用 Android JobScheduler,使用 JobInfo.Builder() 在指定时间启动我的服务。 一切正常,即使我的设备进入睡眠模式。但是当我重新启动设备时,所有的作业仍然存在,但它们的延迟已经增加到一个惊人的数字。
我正在创建具有指定延迟(参数 minimumLatency)的作业并使用参数 setPersisited(true) 以便在重启后保留作业。
例如,假设我将 minimumLatency 设置为 120_000ms。 如果我不重新启动,我的任务会在指定的延迟后正确执行。 但是如果我在任务之前重新启动,我的 mimimumLatency 会增加到大约 400 亿毫
我也试过 setOverrideDeadline() 各种延迟,没用
这是我创建作业的方式:
JobInfo.Builder(id, componentName)
.setExtras(bundle)
.setPersisted(true)
.setMinimumLatency(initialDelay)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.build()
.let {
context.getSystemService(JobScheduler::class.java). schedule(it)
}
如果您对此问题有任何线索,请告诉我。
如有任何帮助,我们将不胜感激。 谢谢
我找到了问题和解决方法。也许这会帮助某人。 这实际上是一个错误。 当设备启动时,在日志中我可以看到设备的日期是 2016 年 12 月 31 日。 然后,稍后当连接到互联网时,系统的日期将更新为今天的日期。 所以我想我增加的延迟是从今天到 2016 年 12 月 31 日之间的时间!
我认为 Android 是在设置日期之前启动 JobScheduler 服务,从而让他们认为它会在 1 年半内。 我想这取决于设备。我在 Android 电视上。
无论如何,这显然不能直接解决,所以我在我的服务中实现了我自己的重新安排,我没有保留 persited 参数。 这样做实际上对我的项目和未来所需的自定义更好。