web-dev-qa-db-ja.com

ペンディングインテントの複数のインスタンス

クリックするとPendingIntentをアクティブにするウィジェットを作成しました。問題は、画面に複数のウィジェットがある場合、最新のウィジェットのみがPendingIntentを開始することです。

ユニークなリクエストコードについていくつか読んだことがありますが、これはわかりません。

どのようにして複数のウィジェットとPendingIntentsをそれぞれに機能させることができますか?

これが私のコードのスニペットです:

Intent openApp = new Intent(context, RunningTally.class);
    openApp.putExtra("widgetId", appWidgetId);
    PendingIntent pendingAppIntent = 
        PendingIntent.getActivity(context, 0, openApp, PendingIntent.FLAG_CANCEL_CURRENT  );
    views.setOnClickPendingIntent(R.id.openFull, pendingAppIntent);
52
taraloca

たまたま私の質問を投稿した後、私は答えを思いついた。 appWidgetIdを「一意の」リクエストコードとして渡して、出来上がりです。これが今のスニペットです:

Intent openApp = new Intent(context, RunningTally.class);
    openApp.putExtra("widgetId", appWidgetId);
    PendingIntent pendingAppIntent = 
        PendingIntent.getActivity(context, appWidgetId, openApp, 
                                  PendingIntent.FLAG_CANCEL_CURRENT);
    views.setOnClickPendingIntent(R.id.openFull, pendingAppIntent);
111
taraloca