1. ホーム
  2. android

アンドロイドの保留中の意思表示の問題

2023-09-17 01:16:31

質問

私のアプリでアラームのようなものがあり、それが押されるとアクティビティを開始する通知を起動します。 問題は、複数のアラームを作成すると、通知から起動したアクティビティが、最初のものと同じエクストラを取得することです。問題は、保留中のインテントに入れたインテントか、保留中のインテント自体にあると思います。私はこれらのいずれかにフラグを置く必要があるかもしれないと思うが、私はどちらかわからない。

Intent showIntent =new Intent(context, notificationreceiver.class);
    showIntent.putExtra("details", alarmname);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
        showIntent, 0); 

    notification.setLatestEventInfo(context, "The event is imminent",
            alarmname, contentIntent);

そして通知の受け手である

Bundle b = getIntent().getExtras();
    String eventname = b.getString("details");
    details.setText(eventname);

詳細("details")は、異なる値を持つ代わりに、次に通知が起こるたびに同じになります。 私がインテントを設定するまで、私は正しい値が"details"に行くことを確信しているので、私が任意の通知を押すたびに最初のインテントを取得するその問題。 どうすれば、正しいインテントを起動できるようになりますか? できるだけわかりやすく説明できるといいのですが。 ありがとうございます。

どのように解決するのですか?

<ブロッククオート

問題は、複数のアラームを作成するときに 複数のアラームを作成すると、通知から起動されたアクティビティが 通知から起動されたアクティビティが 最初のものと同じエクストラを使用することです。

正解です。

<ブロッククオート

を起動するようにするにはどうしたらよいですか? を起動させるにはどうしたらよいでしょうか?

一度に登録されるアラームが2つあるかないかで変わってきますね。

そうでない場合は を使う FLAG_ONE_SHOT または他の PendingIntent フラグ を使用すると、2つ目の PendingIntent が新しいエクストラを使うようにします。

しかし、もし一度に二つのアラームを登録し、それぞれを異なる Intent が異なるアラームを登録する場合は、2 つの Intents がより物質的に異なるように、例えば filterEquals() を返す false を比較するときに、この2つを返します。例えば setData() または setAction() で、それぞれに異なる値を指定します。 Intent .