Android旧通知被新通知无效
我正在开发一个Android应用程序。它接收通知a,并在用户单击通知时显示内容(与a相关)。问题是:如果用户在收到多个通知时单击其中一个旧通知,它会显示与最新通知相关的内容,而不是它本身。例如,在我收到A、B、C、D(A是最新的)通知后,如果我单击通知A,它将显示内容A,但如果我单击B(或C或D),它仍然显示内容A 我用来推送通知的代码如下:Android旧通知被新通知无效,android,notifications,android-pendingintent,Android,Notifications,Android Pendingintent,我正在开发一个Android应用程序。它接收通知a,并在用户单击通知时显示内容(与a相关)。问题是:如果用户在收到多个通知时单击其中一个旧通知,它会显示与最新通知相关的内容,而不是它本身。例如,在我收到A、B、C、D(A是最新的)通知后,如果我单击通知A,它将显示内容A,但如果我单击B(或C或D),它仍然显示内容A 我用来推送通知的代码如下: Intent Intent=newintent(这个,MainActivity.class);//开始主要活动 intent.setFlags(inten
Intent Intent=newintent(这个,MainActivity.class);//开始主要活动
intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TASK | intent.FLAG_ACTIVITY_CLEAR_TOP | intent.FLAG_ACTIVITY_NEW_TASK);
意图.额外(MainActivity.EXTRA_TITLE,TITLE);
intent.putExtra(MainActivity.EXTRA_URL,URL);
pendingent pi=pendingent.getActivity(this,0,intent,pendingent.FLAG_UPDATE_CURRENT);
通知通知=新建通知.Builder(此)
.setWhen(System.currentTimeMillis())
.setTicker(标题)
.setContentTitle(标题)
.setContentText(beacon.getDetail())
.setAutoCancel(真)
.setContinuous(false)//如果为true,则用户不能将其取消
.setSmallIcon(R.drawable.ic_启动器)
.setonlylertonce(真)
.setDefaults(通知.DEFAULT\u全部)
.设置灯(0xff00ff00、1000、300)
.setSound(Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_Uri,“6”))
.设置振动(新长[]{
0, 100, 200, 300
})
//.addAction(0,“取消”,驳回)
//.addAction(0,“打开应用程序”,pi)
.build();
notification.contentIntent=pi;
notificationManager.notify(id,通知)代码>尝试此操作,它将替换旧的通知
notificationManager.notify(id, notification); <---make id the same integer for all notifications
notificationManager.notify(id,notification) 发件人:
知道两个意图何时被认为是相同的是很重要的
用于检索挂起的帐篷。人们常犯的错误
make是创建多个PendingEvent对象,其意图是
只在“额外”内容上有所不同,期望得到不同的结果
每次都挂着帐篷。这种情况不会发生。意图的部分
用于匹配的是由定义的相同的
Intent.filterEquals。如果使用两个等效的意图对象
根据Intent.filterEquals,您将获得相同的悬挂式帐篷
为了他们两个
有两种典型的处理方法
如果确实需要多个不同的PendingEvent对象同时处于活动状态
同时(例如用作两个同时显示的通知)
同时),那么您需要确保
把他们和不同的人联系起来是不同的
悬挂式帐篷。这可能是所考虑的任何意图属性
Intent.filterEquals或提供给的不同请求代码整数
getActivity(Context,int,Intent,int),getActivities(Context,int,
Intent[],int),getBroadcast(上下文,int,Intent,int),或
getService(Context,int,Intent,int)
谢谢你的回答。如果通知的ID相同,则旧通知将替换为新通知,并且只显示一个通知。我想要的是同时显示多个通知。所以用户可以选择旧的通知。谢谢您的回答。你解决了我的问题。受悬而未决的文档的启发,我为我的问题添加了一个有效的答案。