更新Android应用程序小部件的两种方法有什么区别?
我在internet/book中阅读了一些关于应用程序小部件的示例,更新小部件的一个普通示例是在AppWidgetProvider的更新Android应用程序小部件的两种方法有什么区别?,android,widget,broadcastreceiver,android-appwidget,Android,Widget,Broadcastreceiver,Android Appwidget,我在internet/book中阅读了一些关于应用程序小部件的示例,更新小部件的一个普通示例是在AppWidgetProvider的onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId)方法中,如下所示: final int N = appWidgetIds.length; for (int i=0; i<N; i++) { int appWidgetId = appWidgetIds[i]; Remote
onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId)
方法中,如下所示:
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);
}
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);
它并没有一个一个地更新小部件,但实际上所有的小部件都是一次更新的。尽管它可以按我所希望的那样工作,但我还是很困惑,为什么不需要像以前那样逐个更新所有小部件
这两种方法有什么区别
我是否可以从
BroadcastReceiver.onReceive()
发送另一个广播以触发AppWidgetProvider.onUpdate()
?那怎么做呢?这是一样的。Update with ComponentName循环遍历所有ID,就像您的第一个代码块一样
您可以在以下Android代码中看到: