如何为Android应用程序一次只显示一个通知

时间:2013-06-03 07:27:31

标签: android notifications

我使用以下代码来显示通知

private void SendNotification(String notificationTitle, String notificationMessage) 
{
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
android.app.Notification notification = new android.app.Notification(R.drawable.ic_launcher, notificationMessage,
        System.currentTimeMillis());

Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.putExtra("notif_id", "5100");

//Setting the single top property of the notification and intent.
notification.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS; 
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(MainActivity.this, notificationTitle, notificationMessage, pendingIntent);
notificationManager.notify((int)System.currentTimeMillis(), notification);
}

每次收到新通知时,都应删除上一个通知,并显示新通知。

任何线索都会有所帮助。

提前完成

0

2 个答案:

答案 0 :(得分:4)

您每次都会生成一个具有不同ID的通知(System.currentTimeMillis()),将其更改为单个ID。

notificationManager.notify(0, notification);

  

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

NotificationManager.html

答案 1 :(得分:2)

在发布较新的应用程序之前,有一种方法可以清除应用程序的所有通知。 试一试,

notificationManager.cancelAll();

要清除特定通知,您可以这样做,

notificationManager.cancel(notification_id);