Android 事物 - 未应用 UpdatePolicy
Android Things - UpdatePolicy not applied
我正在我的 Android Things 项目中编写更新接口。我可以通过用户输入进行手动更新。但我正在尝试安排每晚午夜自动更新。我想使用带有截止日期的自定义 UpdatePolicy,但我没有使用它。
我在 activity 的 onCreate 方法中试过这个:
mUpdateManager.setPolicy(
new UpdatePolicy.Builder()
.setPolicy(POLICY_APPLY_AND_REBOOT)
.setUpdateDeadline(10, TimeUnit.SECONDS)
.build());
但是10秒后没有任何更新。
也许,我不明白截止日期。
我用错了吗?
截止日期与执行更新检查的时间无关。通常的更新检查时间表是
- 开机后不久
- 此后每 5 小时(大约)一次
(由于与本次讨论无关的原因,这些时间并不准确。)
截止日期反映了在设备强制应用并重新启动之前,设备允许可用更新等待多长时间而不应用。设备在执行检查之前不知道可用的更新,因此您最多可能要等待 5 个小时。
截止日期是指在更长的时间范围内运行(例如,5 天、一周等)。如果更新调度程序存在某种错误,或者如果您允许用户推迟更新但不希望他们永远这样做,这可用作后备。
为了达到你想要的效果,你应该安排(使用WorkManager, JobScheduler, etc) a task that runs at midnight each day and calls UpdateManager.performUpdateNow(UpdatePolicy.POLICY_APPLY_AND_REBOOT)
TL,DR: 更新检查是非常背景的事情。如果您完全关心时间安排,请使用 UpdateManager.performUpdateNow
,但每 5 小时不要超过一次。
我正在我的 Android Things 项目中编写更新接口。我可以通过用户输入进行手动更新。但我正在尝试安排每晚午夜自动更新。我想使用带有截止日期的自定义 UpdatePolicy,但我没有使用它。
我在 activity 的 onCreate 方法中试过这个:
mUpdateManager.setPolicy(
new UpdatePolicy.Builder()
.setPolicy(POLICY_APPLY_AND_REBOOT)
.setUpdateDeadline(10, TimeUnit.SECONDS)
.build());
但是10秒后没有任何更新。 也许,我不明白截止日期。 我用错了吗?
截止日期与执行更新检查的时间无关。通常的更新检查时间表是
- 开机后不久
- 此后每 5 小时(大约)一次
(由于与本次讨论无关的原因,这些时间并不准确。)
截止日期反映了在设备强制应用并重新启动之前,设备允许可用更新等待多长时间而不应用。设备在执行检查之前不知道可用的更新,因此您最多可能要等待 5 个小时。
截止日期是指在更长的时间范围内运行(例如,5 天、一周等)。如果更新调度程序存在某种错误,或者如果您允许用户推迟更新但不希望他们永远这样做,这可用作后备。
为了达到你想要的效果,你应该安排(使用WorkManager, JobScheduler, etc) a task that runs at midnight each day and calls UpdateManager.performUpdateNow(UpdatePolicy.POLICY_APPLY_AND_REBOOT)
TL,DR: 更新检查是非常背景的事情。如果您完全关心时间安排,请使用 UpdateManager.performUpdateNow
,但每 5 小时不要超过一次。