2

2 つの通知を作成する必要がありますが、最後に FLAG_UPDATE_CURRENT または FLAG_CANCEL_CURRENT を使用する場合、それ以外の場合は最初に使用すると、どちらも同じ余分な情報を取得します。

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

for(int num=1;num<3;num++){
    Intent intent = new Intent(this, ActivityNotification.class); 
    intent .putExtra("reminder_id", num);
    PendingIntent pi = PendingIntent.getActivity(this, num, intent , 0);
    // PendingIntent pi = PendingIntent.getActivity(this, num, intent , PendingIntent.FLAG_UPDATE_CURRENT);
    Notification noti = new Notification.Builder(this)
        .setContentIntent(pi)
        .setContentTitle(title)
        .setContentText(text)
        .setSmallIcon(R.drawable.noti)
        .setWhen(when)
        .setAutoCancel(true)
        .build();
    noti.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(num, noti);          
}

さまざまなエクストラを入手するにはどうすればよいですか? または、一般的に、ActivityNotification は、どの通知がそれを呼び出したかをどのように知ることができますか?

4

1 に答える 1

6

ここで述べたように:

  • オプション #1: 各インテントに異なるアクション文字列を入れます。あなたのコードで:

    intent.putExtra("reminder_id", num);
    intent.setAction("com.yourapplic.intent.action.ACTION_NAME" + num);
    PendingIntent pi = PendingIntent.getActivity(this, num, intent , 0);
    
  • オプション #2: getActivity() 呼び出しで別の requestCode (2 番目のパラメーター) を使用します。これは明らかにあなたのケースでは機能しません

于 2013-03-18T00:52:10.137 に答える