2011-01-19 12 views
5

leí algunas ejemplo, en Internet/libro sobre la App Widget, un ejemplo de lo normal para actualizar el widget está en onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) método de AppWidgetProvider así:¿Cuál es la diferencia para actualizar el widget de la aplicación de Android entre dos enfoques?

final int N = appWidgetIds.length; 
for (int i=0; i<N; i++) { 
int appWidgetId = appWidgetIds[i]; 
RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.mywidget_layout); 
updateViews.setTextViewText(R.id.mytext, "updated text"); 

appWidgetManager.updateAppWidget(appWidgetId, updateViews);  
} 

Se actualizan cada Reproductores en un bucle.

Pero ahora, tengo que implementar un widget de la aplicación, que se actualiza en BroadcastReceiver, onReceive(Context context, Intent intent) método ya que no hay int [] appWidgetIds aprobadas en Así que he implementado el código como el siguiente:.

RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.mywidget_layout); 
updateViews.setTextViewText(R.id.mytext, "updated text"); 

ComponentName myComponentName = new ComponentName(context, AndroidBatteryWidgetProvider.class); 
AppWidgetManager manager = AppWidgetManager.getInstance(context); 
manager.updateAppWidget(myComponentName, updateViews); 

Se no actualizó el widget uno por uno, pero en realidad todos los widgets se actualizaron a la vez. A pesar de que funcionó como yo quería, pero me confundí sobre por qué no hay necesidad de actualizar todos los widgets uno por uno como antes.

¿Cuál es la diferencia entre dos métodos?

¿Puedo enviar otra transmisión desde BroadcastReceiver.onReceive() para activar AppWidgetProvider.onUpdate()? ¿Y cómo?

Respuesta

Cuestiones relacionadas