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 中放置不同的操作字符串。在您的代码中:

    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(第二个参数)。这显然不适用于您的情况

于 2013-03-18T00:52:10.137 回答