2 clcurie 11 clcurie_11 于 2013.03.01 17:17 提问

Android 累计未读通知的数量

我在android应用程序中设置了通知功能。每当我接收到一个通知时,未读通知的数量就累计。使用 notification.number 函数,代码如下:

NotificationManager notificationManager = (NotificationManager) 
getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.icon,
"A new notification", System.currentTimeMillis());
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.number += 1;
Intent intent = new Intent(this, NotificationReceiver.class);

PendingIntent activity = PendingIntent.getActivity(this, 0, intent, 0);
notification.setLatestEventInfo(this, "This is the title",
"This is the text", activity);
notificationManager.notify(0, notification);

但是现在不管接收到多少通知,未读通知的数量没有增加,它总是只显示1.
大家能帮我看看错误出现在哪吗?

5个回答

hxn_217
hxn_217   2013.03.04 11:04
已采纳

问题是你创建了一个新的通知对象。只需创建一次,检查它是否存在

public class main extends Activity {

Notification notification=null;


//....
if (this.notification == null)
    this.notification = new Notification(R.drawable.icon,
        "A new notification", System.currentTimeMillis());

this.notification.flags |= Notification.FLAG_AUTO_CANCEL;
this.notification.number += 1;
baimy1985
baimy1985   2013.03.01 19:22

是不是可以换个思路实现你的需求,每次去重新查一次未读数量,源码里的信息应用就是这么做的

yzsunlight
yzsunlight   2014.01.13 20:57

试过 似乎不行,求具体解决方案

javaFORandroid
javaFORandroid   2015.03.31 16:23

这个是错误的,貌似网上都是这样写的,为什么你们可以呢??

tomkan
tomkan   2015.08.05 18:13

notification.number += 1; 如果你每次 number 都是0 那么+=1 还是1 啊 , 为什么number每次都是0 , 可能是你每次都new了notification。

Csdn user default icon
上传中...
上传图片
插入图片