Android:新信息替换通知中的旧信息

时间:2012-07-07 12:26:01

标签: android notifications notificationmanager

来自Android中NotificationManager的{​​{3}}:

public void notify(int id,Notification notification) 发布要在状态栏中显示的通知。如果您的应用程序已经发布了具有相同ID的通知但尚未取消,则该通知将被更新的信息替换。

it will be replaced by the updated information.

我不希望更换旧信息,我想要两个通知。 注意:每个通知都有自己的ID:

notificationManager.notify(0, notification);
notificationManager.notify(1, notification);

怎么做?

3 个答案:

答案 0 :(得分:2)

堆叠您的通知

如果您的应用在另一个相同类型仍处于待处理状态时创建通知,请避免创建一个全新的通知对象。而是堆叠通知。

堆叠通知会构建摘要说明,并允许用户了解特定类型的通知有多少待处理。

http://developer.android.com/design/patterns/notifications.html

答案 1 :(得分:0)

public void notify(String tag,int id,Notification notification)

自:API等级5 发布要在状态栏中显示的通知。如果您的应用程序已经发布了具有相同标记和ID的通知但尚未取消,则它将被更新的信息替换。

参数 tag此通知的字符串标识符。可能为空。 id此通知的标识符。对(标签,id)在您的应用程序中必须是唯一的。 notification(通知)描述向用户显示内容的Notification对象。不能为空。

答案 2 :(得分:0)

试试这个:

private void notifyMe(String message) {
        NotificationManager nManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationCompat.Builder ncomp = new NotificationCompat.Builder(this);
        ncomp.setContentTitle(getResources().getString(R.string.notification_title));
        ncomp.setContentText(message);
        ncomp.setTicker(getResources().getString(R.string.notification_ticker));
        ncomp.setSmallIcon(R.drawable.ic_launcher);
        ncomp.setAutoCancel(true);      
        //nManager.notify((int) System.currentTimeMillis(), ncomp.build());
        nManager.notify(int(System.currentTimemillisec
), ncomp.build());
    }