我正在尝试实现一个简单的小部件,用于在主屏幕上显示。我遇到的问题是,在安装小部件时onUpdate只被调用一次。以下是配置信息。注意:我不会将更新周期保留为20秒,因为我知道这样会消耗电池(只是测试)。
配置:
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="20000"
android:initialLayout="@layout/my_custom_app_widget">`
</appwidget-provider>`
清单摘录:
<receiver android:name="MyCustomWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/my_custom_app_widget_info" />
</receiver>
我安装小部件时观察到以下行为:
在我的WidgetProvider类中,先调用onReceive,然后是onEnabled,再调用onReceive,最后是onUpdate。之后小部件会显示出来,但onUpdate永远不会再被调用。我还检查了当onUpdate被调用时提供程序的设置,并且XML中设置的所有内容(例如更新周期)都是正确的。