Android 管理通知

Android 管理通知,android,notifications,Android,Notifications,我正在开发一个可能会创建多个通知的消息传递应用程序。我希望这些通知可以在事情发生时更新和删除 例如,如果我收到来自a的消息,通知应显示“您有来自a的1条消息”。如果另一条消息到达,它应该说“你有两条来自A的消息” 然后,如果我从B收到一条消息,它应该是一个简单地说“您有消息”的合并通知,而不是来自每个发件人的单独通知 另外,当我点击通知时,它应该取消,如果我点击用户A聊天窗口,来自用户A的任何通知也应该取消 现在,我已经实现了以下生成通知的代码: PendingIntent pendingInt

我正在开发一个可能会创建多个通知的消息传递应用程序。我希望这些通知可以在事情发生时更新和删除

例如,如果我收到来自a的消息,通知应显示“您有来自a的1条消息”。如果另一条消息到达,它应该说“你有两条来自A的消息”

然后,如果我从B收到一条消息,它应该是一个简单地说“您有消息”的合并通知,而不是来自每个发件人的单独通知

另外,当我点击通知时,它应该取消,如果我点击用户A聊天窗口,来自用户A的任何通知也应该取消

现在,我已经实现了以下生成通知的代码:

PendingIntent pendingIntent = PendingIntent.getActivity(context, -1, launchIntent, PendingIntent.FLAG_UPDATE_CURRENT);

NotificationCompat.Builder noti = new NotificationCompat.Builder(
  context).setContentTitle(context.getResources().getString(R.string.app_name))
  .setContentText(notificationMessage)
  .setSmallIcon(R.drawable.ic_stat_notify)
  setContentIntent(pendingIntent)
  setAutoCancel(true)
  setWhen(System.currentTimeMillis())
  setDefaults(Notification.DEFAULT_ALL);
notificationManager.notify(notifyId, noti.build());
这会创建通知,并在用户单击时取消通知。但是,我不确定如何更新通知、合并通知以及取消相应的通知。有人知道吗


谢谢。

您需要始终使用相同的
通知
ID

 public void notify(int id, Notification notification)

id-发布一个通知以显示在状态栏中。如果应用程序已经发布了具有相同id的
通知,并且该通知尚未取消,则该通知将被更新的信息替换为

只需发布与旧通知具有相同id的新通知,即可将旧通知替换为新通知。

好的,我理解这种行为。然而,这不意味着我不能有选择地取消通知吗?例如,如果我从用户a收到一条消息,在我确认通知之前,我从用户B收到一个用户。关于用户B的通知将替换用户a的通知,并且我将无法取消用户a的通知,保留用户B的通知?另外,我正在维护未确认通知的计数,以便在需要时可以合并通知,并且我希望在用户确认通知时清除此计数。但我不知道该在哪里做。点击通知只会启动intent,我无法清除每个intent活动的onResume()计数。