8.0通知栏新增通知渠道,及自定义通知 响应点击事件

今天写了下demo 发现通知在8.0后有些改变记录下这个坑!!!!

通知的代码大家在网上一搜一大把,我也不废话 直接上重点。

点击发送通知,没有通知显示,代码如下。

日志信息

明明走了这行代码却什么也没发生,what? 难道写错了?,后来查看了资料下才知道是8.0后加了个叫通知渠道的东西,简单点说 就相当于一个ID,标记当前是什么通知,用于给系统识别的,

,且上面方法已经废弃掉了,必须带有通知渠道的 通知才能展示!

稍稍调整下代码

给一个CHANNEL_ID 的标识,重点是这个NotificationChannel 这个类,再创建通知前一定要createNotificationChannel()

这个方法只会走一次,而且不影响效率,也不会重复创建

 NotificationChannel

运行后效果,通知就出来了

什么是通知渠道

Android 8.0 功能和 API  

官方解释在上面

Android 8.0 系统,Google引入通知渠道,提高用户体验,方便用户管理通知信息,同时也提高了通知到达率

什么是通知渠道呢?顾名思义,就是每条通知都要属于一个对应的渠道。每个App都可以自由地创建当前App拥有哪些通知渠道,但是这些通知渠道的控制权都是掌握在用户手上的。用户可以自由地选择这些通知渠道的重要程度,是否响铃、是否振动、或者是否要关闭这个渠道的通知。

通知适配

build.gradle 中targetSdkVersion设置大于等于26。这时如果不对通知渠道适配,通知就无法显示。

代码在上面有,主要是这个

自定义通知和点击事件

点击自定义通知效果及日志

点击后跳转我想要的页面

日志

只要是用

RemoteViews的setOnClickPendingIntent  给某个控件设置点击事件, 网上大多是通过
PendingIntent  设置广播,如果我只需要做单纯的跳转某个界面没必要这么麻烦。。。

猜你喜欢

转载自blog.csdn.net/qq_32425789/article/details/83057893