我有一个WidgetProvider和一个Configure Activity
当Widget被启动时,它会与配置活动一起启动,并通过自定义调用WidgetProvider来设置它
(你会注意到这是来自sdk教程示例的)
// Push widget update to surface with newly set prefix
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
AwarenessWidget.updateAppWidget(context, appWidgetManager,
mAppWidgetId, position);
// Make sure we pass back the original appWidgetId
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(RESULT_OK, resultValue);
finish();
我将 Widget ID 传递给函数...在小部件内部,我创建了以下 Intent:
Intent configIntent = new Intent(context, Configure.class);
configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pendingIntent = PendingIntent.getActivity
(context, 0, configIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.MainImage,pendingIntent);
views.setImageViewResource(R.id.MainImage, lv_images[version]);
appWidgetManager.updateAppWidget(appWidgetId, views);
我总是引用小部件ID,甚至将其作为意图的附加项 但是当我在主屏幕上放置两个这样的小部件时,小部件ID总是引用最后一个放置的小部件ID
intent.data = Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))
,现在运行得非常好。 - Hayk Mkrtchyan