2011-01-19 11 views
5

App Widget ile ilgili internet/kitap ile ilgili bir örnek okudum, widget'ı güncellemek için normal bir örnek olarak AppWidgetProvider'ın onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) yönteminde olduğu gibi:Android Uygulama Widget'ını iki yaklaşım arasında güncellemenin farkı nedir?

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);  
} 

Bir döngü içinde her bir Widget'ı günceller.

Ama şimdi, bir App Widget uygulamak zorundayım, int [] appWidgetIds geçmedi beri BroadcastReceiver, onReceive(Context context, Intent intent) yönteminde güncellenir. Bu yüzden bu kodu uyguladı:

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); 

widget'ı tek tek güncellemedi, ancak aslında tüm widget'lar bir kerede güncellendi. İstediğim gibi çalışmasına rağmen, tüm widget'ları bir öncekine göre neden güncellemeye gerek olmadığı konusunda kafam karıştı.

İki yöntem arasındaki fark nedir?

AppWidgetProvider.onUpdate()'ten AppWidgetProvider.onUpdate()'i tetiklemek için başka bir yayın gönderebilir miyim? Ve nasıl yapılır?

cevap

İlgili konular