我收到来自 GCM 的推送通知,并希望它们显示在通知栏中。所以我在 GCMIntentService 类中生成通知。
如果通知区域中已经有通知,则必须将此通知附加到新消息中(使用 BigTextStyle)。但是我怎么知道通知区域中是否有来自我的应用程序的通知?
我收到来自 GCM 的推送通知,并希望它们显示在通知栏中。所以我在 GCMIntentService 类中生成通知。
如果通知区域中已经有通知,则必须将此通知附加到新消息中(使用 BigTextStyle)。但是我怎么知道通知区域中是否有来自我的应用程序的通知?
您无法获取现有通知,但您可以通过设置通知 ID 来更新现有通知。
NotificationManager.notify(NotificationId, NotificationObject);
不,您无法确定是否已经发布了通知;这是您应该在应用程序中跟踪的内容。
然而,幸运的是,更新现有通知的 API 与创建新通知的 API 相同:notify()
. 也就是说,一旦您获得新信息,将其添加到某个内部缓冲区(可能只是 a StringBuilder
),代表收到的完整推送通知集,然后使用您上次使用的相同 ID 和标签构建新通知Notification.Builder
并调用。notify()
任何具有该 ID 和标签的现有通知都将替换为新内容。