17

毎回保留中のインテントを作成するにはどうすればよいですか?現在、私の既存の保留中のインテントは新しいものに置き換えられています。FLAG_ONE_SHOT同様に使用してみましCANCEL_CURRENTたが、うまくいきませんでした。

4

2 に答える 2

37

次のように、リクエスト コードに乱数を追加します。

Intent intent = new Intent(context, YourClassname.class);
intent.putExtra("some data", "txt");  // for extra data if needed..

Random generator = new Random();

PendingIntent i=PendingIntent.getActivity(context, generator.nextInt(), intent,PendingIntent.FLAG_UPDATE_CURRENT);
于 2013-03-23T15:28:40.483 に答える
11

FLAG_CANCEL_CURRENT - 記述された PendingIntent が既に存在する場合、現在のものは新しいものを生成する前にキャンセルされます。

FLAG_NO_CREATE - 記述された PendingIntent がまだ存在しない場合は、作成する代わりに単に null を返します。

FLAG_ONE_SHOT - この PendingIntent は一度しか使用できません。

FLAG_UPDATE_CURRENT - 記述された PendingIntent が既に存在する場合は、それを保持しますが、余分なデータをこの新しい Intent にあるものに置き換えます。

複数の個別の PendingIntent オブジェクトを同時にアクティブにする必要がある場合 (両方が同時に表示される 2 つの通知として使用する場合など)、それらに異なるものを関連付けるために、それらに異なるものがあることを確認する必要があります。保留中のインテント。これは、 によって考慮される Intent 属性のいずれかIntent.filterEquals、または に提供される異なるリクエスト コード整数である可能性があります。getActivity(Context, int, Intent, int), getActivities(Context, int, Intent[], int), getBroadcast(Context, int, Intent, int), or getService(Context, int, Intent, int).

于 2013-03-08T16:00:44.840 に答える