我正在尝试实现一个简单的小部件以在主屏幕上显示。我遇到的问题是 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 中设置的所有内容(例如更新周期)正确时,我还会检查提供者的设置。