【发布时间】:2010-12-30 10:06:48
【问题描述】:
这是我如何配置我的 APP 的小部件:
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="240dp"
android:minHeight="193dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/xyz_appwidget"
android:configure="com.xyz.activity.Configuration"
/>
因此,一旦用户将小部件放在主屏幕上,系统就会启动Configuration 活动。不幸的是,如果没有应用配置,则不应将此小部件放在屏幕上。
我添加了一些调试输出。当用户为其主屏幕选择小部件时会发生这种情况。 注意:这是配置活动在前面时,而不是小部件。
I/ActivityManager( 101): Start proc com.xyz for broadcast com.xyz/.widget.xyz.XyzWidgetProvider: pid=14371 uid=10050 gids={3003, 1015}
D/XyzWidgetProvider(14371): onReceive: android.appwidget.action.APPWIDGET_ENABLED
D/XyzWidgetProvider(14371): onEnabled
D/XyzWidgetProvider(14371): onReceive: android.appwidget.action.APPWIDGET_UPDATE
这意味着即使小部件未配置,两个事件(启用、更新)也会被触发。 Enabled 对我来说很有意义,但 UPDATE 显然不是。尤其是当 Configuration 活动成功完成时,不会发送额外的 UPDATE 事件。
我还了解到,通过将Configuration 活动的结果设置为Activity.RESULT_CANCELED,可以取消配置过程。但是由于这显然是异步运行的,我不知道如何使配置过程阻塞?有人遇到过这种情况吗?
我的最后一点:我查看了 Android Gallery 小部件,以某种方式正确地管理了这一点,因此不会添加未配置的图库小部件。但我怀疑那里有一些 HTC magic,因为日志不是很有帮助。
【问题讨论】:
-
我有同样的问题,运行配置
Activity触发onUpdate为AppWidget -
我可能会将此作为 bugs.android.com 中的错误报告..
-
添加为错误报告,请。 星如果你喜欢:code.google.com/p/android/issues/detail?id=13755#c0