我有一个

Android小部件,它使用Web服务来检索和显示小部件上的数据.小部件具有扩展PreferenceActivity的配置活动.安装小部件后,即可启动配置活动,这是此小部件所需的行为.

问题是,无论何时将主窗口添加到主屏幕,窗口小部件会尝试在启动/完成配置活动之前自己更新,这可能会导致长时间的延迟(几秒钟).配置活动应该在widget添加之前尝试更新自己的任何东西.

以下是在添加小部件时在LogCat中看到的事件序列:

> Widget.onRecive:action = APPWIDGET_ENABLED

> Widget.onEnabled

> Widget.onReceive:action = APPWIDGET_UPDATE

> Widget.onUpdate:启动Widget服务.

> WidgetService.onStartCommand:潜在的长时间运行的工作,将延迟配置活动立即显示.

> WidgetConfiguration.on创建

> Widget.onReceive:action = APPWIDGET_UPDATE

> Widget.onUpdate:Widget服务再次启动

> WidgetService.onStartCommand:可能长时间运行的工作再次执行.

发生的情况是,当添加窗口小部件时,服务将在配置视图显示之前启动.

的Manifest.xml

package="xxx.xxx.xxxwidget"

android:versionCode="1"

android:versionName="@string/app_version" >

android:debuggable="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

android:name="android.appwidget.provider"

android:resource="@xml/widget_info" />

在系统尝试将窗口小部件添加到主屏幕之前,是否有办法强制配置活动显示?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐