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 小时不要超过一次。