我是android中的一个菜鸟,我正在尝试显示我收到的推送通知的通知。每次收到推送通知时,都会在通知栏中创建新通知,即使存在现有通知也是如此。我希望它们组合在一起。
这就是我目前正在做的事情
private void generateNotification(Context context, String ticker, String title, String msg, int icon, Intent intent)
{
int notificationId = 1;
long when = System.currentTimeMillis();
int pendingNotificationsCount = AppName.getPendingNotificationsCount() + 1;
AppName.setPendingNotificationsCount(pendingNotificationsCount);
mNotifyBuilder = new NotificationCompat.Builder(this)
.setWhen(when)
.setContentTitle(title)
.setContentText(msg)
.setAutoCancel(true)
.setContentIntent(PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT))
.setNumber(pendingNotificationsCount);
//This prints the count correctly....
Log.d("Snehan", "Message built with Count "+pendingNotificationsCount);
Notification notif = mNotifyBuilder.build();
notif.defaults = Notification.DEFAULT_ALL;
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(notificationId, notif);
}
我在这里做错了什么或者错过了什么?
答案 0 :(得分:0)
自从我上次使用它以来,似乎Android更新了库。但逻辑仍然是一样的。您需要保存通知ID,或至少为其命名,您可以跟踪并检查它是否存在。更多信息可以在Android docs中找到。以下是我的意思摘要。
要设置通知以便更新,请通过调用NotificationManager.notify(ID,通知)向通知ID发出通知。要在发出通知后更新此通知,请更新或创建NotificationCompat.Builder对象,从中构建Notification对象,并使用您之前使用的相同ID发出通知。如果先前的通知仍然可见,则系统会从Notification对象的内容中更新它。如果先前的通知已被取消,则会创建新的通知。
文档包含您需要的所有内容,因此我无需为您编写代码:)希望有所帮助。
修改强>:
好的,所以我建议你添加一个虚拟图标,看看它是做什么的。我还建议不要链接所有的东西,只链接文本的东西。这样您可以更容易地调试。尝试更密切地关注文档。我不知道你的代码有什么问题,但显然有些东西导致了这个问题。
修改2
所以看起来这个图标就是问题所在。我以前遇到过这个问题,这就是为什么我提到要明确添加它。希望当有人遇到通知问题时,请确保您有一个图标!!