Android小部件更新频率为0,它实际意味着什么?

时间:2013-12-24 05:59:21

标签: android android-widget

我在小部件中找到了以下代码部分:

<appwidget-provider>
    android:updatePeriodMillis="0"
<appwidget-provider/>

现在,我的问题是:将updatePeriodMillis设置为0意味着什么。
我知道它是根据小部件接收remoteview或其他人的频率而设置的。那么,将它设置为0有什么意义。

3 个答案:

答案 0 :(得分:30)

将updatePeriodMillis设置为0时,实际上是禁用该特定窗口小部件上的更新周期。意味着,该属性不再适用于该小部件。

答案 1 :(得分:8)

  

根据android文档:

updatePeriodMillis 属性定义了App Widget框架通过调用 onUpdate()回调方法从 AppWidgetProvider 请求更新的频率。实际更新不能保证准确地按时发生,我们建议尽可能不经常更新 - 也许每小时不超过一次以节省电池。您可能还允许用户调整配置中的频率 - 有些人可能希望股票代码每15分钟更新一次,或者一天只能更新四次。

注意:如果设备在更新时处于睡眠状态(由updatePeriodMillis定义),则设备将被唤醒以执行更新。如果每小时更新不超过一次,这可能不会导致电池寿命出现严重问题。但是,如果您需要更频繁地更新和/或在设备处于睡眠状态时无需更新,则可以根据不会唤醒设备的警报执行更新。为此,请使用AlarmManager使用AppWidgetProvider接收的Intent设置警报。将警报类型设置为ELAPSED_REALTIME或RTC,它仅在设备唤醒时发出警报。然后将updatePeriodMillis设置为零(“0”)。

答案 2 :(得分:2)

根据Android开发人员的说法 这个AppWidget想要更新的频率(以毫秒为单位)。 AppWidget管理器可以限制AppWidget的更新频率。

此字段对应于AppWidget元数据文件中的android:updatePeriodMillis属性。

注意:使用updatePeriodMillis请求的更新不会每30分钟发送一次。