Android 如何管理来自同一应用程序的多个通知

Android 如何管理来自同一应用程序的多个通知,android,notifications,alarmmanager,Android,Notifications,Alarmmanager,我是android新手。我正在开发火灾通知应用程序。当我在状态栏上有多个通知并单击第二个时,第一个通知将被打开。我只能获得第一次通知的Id。如何选择我单击的特定通知Id。这是我的密码 save.setOnClickListener(new OnClickListener() { for(int i=1;i<gpPeople.size();i++) { Context ctx = SetReminder.this.getApplicationCont

我是android新手。我正在开发火灾通知应用程序。当我在状态栏上有多个通知并单击第二个时,第一个通知将被打开。我只能获得第一次通知的Id。如何选择我单击的特定通知Id。这是我的密码

 save.setOnClickListener(new OnClickListener() {

     for(int i=1;i<gpPeople.size();i++)
     {
         Context ctx = SetReminder.this.getApplicationContext();
         Intent intent = new Intent(SetReminder.this, AlarmReciever.class);
         intent.putExtra("contactName",gpPeople.get(i));
         intent.putExtra("id", id);//unique notification Id
         PendingIntent objPendingIntent = PendingIntent.getBroadcast(SetReminder.this, i, intent, 0);
         AlarmManager alarmManager = (AlarmManager)ctx.getSystemService(ctx.ALARM_SERVICE);
         alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, StartTime, cal.getTimeInMillis(), objPendingIntent);
     }
 }

当我点击任何一个通知的呼叫按钮时,只会操作第一个通知。请帮我获取特定通知的Id。提前感谢

您的通知标识符对于每个通知都应该是唯一的

您可以将通知代码放入方法中:

    public void notification (int notificationIdentifier){
notification = new Notification.Builder(context).
                setContentTitle(notificationTitle).
                setContentText(notificationMessage+" "+name).
                setAutoCancel(true).setSmallIcon(icon).
                setWhen(System.currentTimeMillis()).
                addAction(android.R.drawable.ic_menu_call,"call",objPendingCall).
                addAction(android.R.drawable.ic_menu_delete, "Cancel", objPendingCancel).
                addAction(android.R.drawable.ic_lock_idle_alarm,"Snooze",objPendingSnooze).
                setContentIntent(objPendingIntent).
                build();
            notification.defaults |= Notification.DEFAULT_SOUND;
            notification.defaults |= Notification.DEFAULT_VIBRATE;
            notification.defaults |= Notification.DEFAULT_LIGHTS;
            final NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
            notificationManager.notify(notificationIdentifier, notification);  
    };
并在需要的位置调用该方法:

notification (notificationIdentifier);
如果id没有意义,可以使用随机数:

Random rand = new Random();
notificationIdentifier = rand.nextInt(1000000) + 1;
Random rand = new Random();
notificationIdentifier = rand.nextInt(1000000) + 1;