我有一个关于AppWidgetProvider
的问题。当手机启动时,AppWidgetProvider
的onUpdate()
方法连续调用四次,全部包含相同的appWidgetId
。我无法弄清楚为什么会发生。有人有线索吗?AppWidgetProvider,onUpdate在开始时被调用几次
我得到的,它扩展了 super classes
super classes
,Main
和MainScroll
,并且four classes(widgets)
两种类型。
例部件
public class WidgetMedium extends Main {
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
}
}
清单
<receiver android:name=".activity.Main">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
</receiver>
<receiver android:name=".activity.MainScroll">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
</receiver>
<receiver android:name=".activity.WidgetMedium"
android:label="Swedroid Widget 4x3"
android:icon="@drawable/widget_application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_provider_medium" />
</receiver>
<receiver android:name=".activity.WidgetScrollMedium"
android:label="Swedroid Widget 4x3 Scroll"
android:icon="@drawable/widget_application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_scroll_provider_medium" />
</receiver>
<receiver android:name=".activity.WidgetLarge"
android:label="Swedroid Widget 4x4"
android:icon="@drawable/widget_application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_provider" />
</receiver>
<receiver android:name="com.swedroid.widget.activity.WidgetScrollLarge"
android:label="Swedroid Widget 4x4 Scroll"
android:icon="@drawable/widget_application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_scroll_provider_large" />
</receiver>
你能从你的AppWidgetProvider的onUpdate方法发布代码吗?可能是您正在循环部件并更新每个部件。 – ekatz 2011-12-17 19:15:03
onUpdate方法非常简单,我遍历小部件并为它们中的每一个启动一个IntentService。它不应该导致这种问题。 – user634545 2011-12-17 20:37:52