Android 如何管理来自同一应用程序的多个通知
我是android新手。我正在开发火灾通知应用程序。当我在状态栏上有多个通知并单击第二个时,第一个通知将被打开。我只能获得第一次通知的Id。如何选择我单击的特定通知Id。这是我的密码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
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;