欢迎关注WX公众号:
发送多个通知,但是只有点击最新一个才能够打开APP及notification发送通知兼容处理
问题描述
遇到这样一个问题,就是我发送了多条消息到系统通知栏,但是只有点击最新的一条通知,才能够打开APP。我的目标是每条消息都会跳到不同的界面的,但是这样就与设计相违背了,当然不乐意了。
在发送消息的时候,我是每个消息都会有不同的ID的,每个ID都是1-50的随机数,避免重复。
mNotificationManager.notify(msgId, notification);
但是似乎这样还是不行,所以还要继续看是哪里的问题。
跳转当然是用pendingIntent了,所以需要看是不是这里设置的跳转有问题。我的代码逻辑:
第一和第三个参数应该是没有问题的。
重点看第二个和第四个。
先看第四个参数:这个是说对该pendingintent的处理标志,例如我这里设置为PendingIntent.FLAG_CANCEL_CURRENT,说明当有相同的pendingintent过来的时候,会先取消该intent,然后再创建一个新的intent。当天你也可以设置为FLAG_UPDATE_CURRENT 只要更新它就好了。这个看起来好像是问题,因为我设置为取消了。但是当我改为FLAG_UPDATE_CURRENT之后,也还是一样。所以先排除这个问题。
再看第二个参数:就是一个请求码。对发送者来说是私有的。
因为我设置的requestcode都是一样的,为0,配合第四个参数,判定前后两个intent是一致的,所以对我上一个intent动作进行了取消操作。最后导致只有最新一个intent才能够进行跳转操作。
修改,那么我就将这个requestcode修改为不一样的,然后测试就OK了。代码如下:
结果点击每一个通知,都能打开APP并跳转到对应的界面。
另外,还有一个关于发送通知的问题,因为Android 8 已经改变了方式,需要做兼容处理。最后把对应的代码贴出来供参考。
Android 8及以上发送通知:
Android 8以下发送通知:
当然,在intent上面可以带上你跳转所需要的数据。
以上就是我遇到的点击通知无法跳转遇到的问题及解决方案。