Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新Android应用程序小部件的两种方法有什么区别?_Android_Widget_Broadcastreceiver_Android Appwidget - Fatal编程技术网

更新Android应用程序小部件的两种方法有什么区别?

更新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

我在internet/book中阅读了一些关于应用程序小部件的示例,更新小部件的一个普通示例是在AppWidgetProvider的
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代码中看到: