我的應用程序支持每個此處列出how to add multiple widgets in one app?如何更新不同大小的小部件?
它具有處理所有的部件一個抽象類BaseWidgetProvider的方案通過多個尺寸部件。然後它被Android Manifest中列出的空WidgetProvider1/2/3/4類(每個大小一個)分類,並且一切正常。在清單看起來登記這樣的(典型的1..4)
<receiver
android:name=".widget.MyWidgetProvider4"
android:label="My Widget size 4" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<intent-filter>
<action
android:name="my.domain.BaseWidgetProvider.UPDATE_WIDGET" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/my_widget_info4" />
</receiver>
我的問題是關於從應用程序發送的意圖,用新數據更新的部件。我無法找到一個方法來發送一個意圖的所有4個供應商,我目前每次
for (Class cls : BaseWidgetProvider.WIDGET_PROVIDER_CLASSES) {
Intent intent = new Intent(mApp.context(), cls);
intent.setAction(BaseWidgetProvider.UPDATE_WIDGET);
this.sendBroadcast(intent);
}
其中
public static final Class[] WIDGET_PROVIDER_CLASSES = new Class[] {
WidgetProvider4.class,
WidgetProvider1.class,
WidgetProvider2.class,
WidgetProvider3.class
};
這是送一個最好的方式發送4個獨立的意圖將意圖更新爲所有小部件大小(請注意,通常用戶只有零個或一個小部件)?
是否有合理的方式發送只有一個意圖?
有沒有辦法讓一個接收器更新所有四種尺寸的小部件實例?
請注意,基本提供程序類不關心小部件大小,對於所有大小都完全相同。唯一的區別是用戶屏幕上的初始小部件大小。如果用戶調整了窗口小部件的大小(例如使用Launcher Pro),它就可以正常工作。
我試圖按照相同的鏈接多個大小的部件,但我無法得到如何實現基類的想法。我只是一個初學者在Android以及Java。因此,如果您可以發佈您的所有解決方案或您遵循的步驟,這將非常有幫助。這對我以及其他那些陷入這個問題的初學者來說都是非常有幫助的。 – Prativa 2012-11-28 05:09:19