保留中のインテントに固有の追加情報を正しく渡すにはどうすればよいですか? 質問する

保留中のインテントに固有の追加情報を正しく渡すにはどうすればよいですか? 質問する

alarmManager私は、それに付随する追加機能に関する保留中の意図に問題を抱えています。

複数のアラームを設定すると、それらは鳴りますが、追加のアラームはそのまま残ります。

私はすでにこれらの質問について読んでいます:

そして私は試しました:

  • 各保留中の意図に一意のIDを割り当て、
  • すべての保留中の意図フラグを使用して、

すべて無駄でした。なぜ機能しないのか全く分かりません。

コードスニペットは次のとおりです。

Intent intent = new Intent(con,
                    AppointmentNotificationReciever.class);
            intent.putExtra("foo", bar.toString());


            int id = randomNum;

            PendingIntent sender = PendingIntent.getBroadcast(con, id,
                    intent, PendingIntent.FLAG_UPDATE_CURRENT);


            AlarmManager am = (AlarmManager) con.getSystemService(Context.ALARM_SERVICE);
            am.set(AlarmManager.RTC_WAKEUP, scheduleExecution, sender);

ベストアンサー1

ここではおそらく 2 つの異なる問題があります。

1) 以前に PendingIntent を作成済みで、それが既存の PendingIntent と「一致する」場合は、PendingIntent.FLAG_UPDATE_CURRENT フラグを指定する必要があります。そうしないと、追加情報が渡されません。「一致」は Intent.filterEquals() が使用する基準に基づいているため、必ずドキュメントを読んで、データ、アクション、タイプなどを理解してください。

2) インテントに対してアクションを設定しないと、追加機能が伝播されないと読んだので、intent.setAction("com.blah.Action") を試してみるとよいかもしれません。

おすすめ記事