У меня есть 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();
Я передаю идентификатор виджета функции .... внутри виджета я создаю намерение, подобное этому:
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);
IЯ всегда ссылаюсь на идентификатор виджета и даже добавляю его в качестве дополнительного объекта, но когда я получаю два из этих виджетов на домашнем экране, идентификатор виджета всегда ссылается на последний размещенный идентификатор виджета