У меня есть приложение с AppWidget
. У AppWidget
есть несколько кнопок, которые при нажатии должны открывать Activity
. Activity
должен изменить значения некоторых объектов в зависимости от appWidgetId
из AppWidget
, который запустил этот Activity
. Вот фрагмент кода из подкласса AppWidgetProvider
:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
for (int id : appWidgetIds) {
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget);
Intent localCodeIntent = new Intent(context,
CountrySelectorActivity.class);
localCodeIntent
.setAction(CurrencyRatesWidgetHelper.WIDGET_UPDATE_LOCAL_CURRENCY);
localCodeIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id);
PendingIntent localCodePI = PendingIntent.getActivity(context, 0,
localCodeIntent, 0);
views.setOnClickPendingIntent(R.id.local_iv, localCodePI);
Activity
запускается хорошо, но когда я пытаюсь извлечь appWidgetId
, я получаю значение 1 каждый раз. Вот код метода Activity
* onCreate()
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
appWidgetId = intent
.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 0);
action = intent.getAction();
Я уверен, что где-то совершаю ошибку, но не могу понять это. Заранее спасибо.