Se necesita una definición receptor para cada tipo en el archivo de manifiesto como:
<receiver android:name=".MyWidget" android:label="@string/medium_widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/medium_widget_provider" />
</receiver>
<receiver android:name=".MyWidget" android:label="@string/large_widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/large_widget_provider" />
</receiver>
Esto permitirá tener la misma clase AppWidgetProvider
ser utilizado para múltiples widgets, con diferentes nombres widget y diferentes tamaños definidos en el <appwidget-provider>
XML.
Ahora bien, si usted necesita más diferencias en sus widgets que lo que está en el <appwidget-provider>
XML crearía una clase widget de base que implementa toda la behavoir común entre los diferentes tipos:
public abstract class MyBaseWidget extends AppWidgetProvider
Y entonces cada uno de sus implementaciones concretas podrían extender MyBaseWidget. Luego, en el archivo de manifiesto que tendría una definición receptor para cada una de sus implementaciones concretas como:
<receiver android:name=".MyMediumWidget" android:label="@string/medium_widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/medium_widget_provider" />
</receiver>
<receiver android:name=".MyLargeWidget" android:label="@string/large_widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/large_widget_provider" />
</receiver>
¡Muchas gracias desde entonces! Yo estaba muy cerca. Voy a trabajar en ello y vuelvo eather con un mensaje de éxito o más preguntas. Muchas gracias. – BarcaDroid
Hola, gracias por tu respuesta. Pero parece que no puedo compartir el mismo proveedor de widgets. (Si lo hago, solo se muestra primero en manifiesto). Entonces, básicamente, múltiples proveedores de widgets serían la respuesta para mí. ¿Alguien está trabajando con un proveedor de widgets? – xandy
Sí, simplemente siguió las instrucciones anteriores y descubrió que solo funciona si especifico diferentes clases de proveedor de widgets. Bueno de todos modos, ¡gracias a todos! :) – dimsuz