0

我正在android中开发事件提醒应用程序。在我的应用程序中,用户可以设置事件时间,并在指定时间生成状态栏通知。但在我的应用程序中,它在状态栏中多次生成相同的通知(通知 ID)。请帮助我如何避免这种情况?

PendingIntent contentIntent = PendingIntent.getActivity(context, 0,i, PendingIntent.FLAG_ONE_SHOT);
notification = new Notification(R.drawable.logo, "Notification",System.currentTimeMillis());
notification.setLatestEventInfo(context,strText, "@"+strDate+ strCorrectTime,contentIntent);
notification.defaults |= Notification.DEFAULT_VIBRATE;
notification.defaults|=Notification.DEFAULT_ALL;
mNotificationManager.notify(Integer.parseInt(intent.getExtras().get("NotifyCount").toString()), notification);

在此处输入图像描述这是编码..在此处输入图像描述

4

2 回答 2

2

不要System.currentTimeMillis()用作通知 ID。而是定义一个常量:

public static final long TRAY_ID = 237864827364; // let your IDE generate it

并在每个之前使用它mNotificationManager.notify(..)

( (NotificationManager)getSystemService( Context.NOTIFICATION_SERVICE ) ).cancel( TRAY_ID );
于 2013-10-08T12:19:11.427 回答
0

系统时间应该可以正常工作。请检查您的 BroadcastReceiver 调用了多少次。它可能会被调用两次。并使用 for unique id 进行通知。

int notitime=new Random(System.currentTimeMillis()).nextInt();

mNotificationManager.notify(notitime, notification);

notitime 是通知的唯一 ID。

于 2014-06-18T13:51:12.087 回答