我在一个小部件中找到了以下代码部分:
android:updatePeriodMillis="0"
现在,我的问题是:它确实意味着updatePeriodMillis设置为0.
我知道它是根据窗口小部件接收remoteview或其他人的频率设置的.那么,将它设置为0有什么意义.
将updatePeriodMillis设置为0时,实际上是禁用该特定窗口小部件上的更新周期.意味着,该属性不再适用于该小部件.
根据android文档:
所述updatePeriodMillis属性定义如何经常在App组件框架应要求从一个更新的AppWidgetProvider通过调用的onUpdate()回调方法.实际更新不能保证准确地按时发生,我们建议尽可能不经常更新 - 也许每小时不超过一次以节省电池.您可能还允许用户调整配置中的频率 - 有些人可能希望股票代码每15分钟更新一次,或者一天只能更新四次.
注意:如果设备在更新时处于睡眠状态(由updatePeriodMillis定义),则设备将被唤醒以执行更新.如果每小时更新不超过一次,这可能不会导致电池寿命出现严重问题.但是,如果您需要更频繁地更新和/或在设备处于睡眠状态时不需要更新,则可以根据不会唤醒设备的警报执行更新.为此,请使用AlarmManager使用AppWidgetProvider接收的Intent设置警报.将警报类型设置为ELAPSED_REALTIME或RTC,它仅在设备唤醒时发出警报.然后将updatePeriodMillis设置为零("0").