pho*_*gel 37 android widget android-appwidget
我正在尝试实现一个简单的小部件,以便在主屏幕上显示.我遇到的问题是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>`
Run Code Online (Sandbox Code Playgroud)
清单摘录:
<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>
Run Code Online (Sandbox Code Playgroud)
我在安装窗口小部件时会观察到以下行为:在onReceive上的我的WidgetProvider类中调用onEnabled然后onReceive,然后调用onUpdate.
之后,窗口小部件显示,并且永远不会再次调用onUpdate.我还会在调用onUpdate时检查提示器的设置,并且上面用XML设置的所有内容(例如更新周期)都是正确的.
Com*_*are 68
虽然你已经android:updatePeriodMillis设置为20秒,最小的实际时间是30分钟.因此,如果您没有等待30分钟,看看测试期间是否有更新,则需要等待一段时间.
小智 20
从SDK:
注意:如果设备在需要更新时(如定义的那样updatePeriodMillis)处于睡眠状态,则设备将被唤醒以执行更新.如果每小时更新不超过一次,这可能不会导致电池寿命出现严重问题.
但是,如果您需要更频繁地更新和/或在设备处于睡眠状态时不需要更新,则可以根据不会唤醒设备的警报执行更新.
为此,请使用以下命令设置您AppWidgetProvider收到的Intent警报AlarmManager.将警报类型设置为ELAPSED_REALTIME或RTC,仅在设备唤醒时发出警报.然后设置updatePeriodMillis为zero("0").
当SDK 1.6+时:
注意:请求的更新updatePeriodMillis不会每30分钟发送一次以上.
| 归档时间: |
|
| 查看次数: |
22575 次 |
| 最近记录: |