Проблемы с запуском активности из AppWidget - PullRequest
1 голос
/ 15 февраля 2012

У меня есть приложение с 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();

Я уверен, что где-то совершаю ошибку, но не могу понять это. Заранее спасибо.

...