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