android 8.0适配--Notification

Notification基本操作

Notification,是一种具有全局效果的通知,可以在系统的通知栏中显示。我们在使用手机的过程中经常可以收到各种类型的app发送通知。通知主要有以下几个作用

  • 显示接收到短消息、及时消息等信息(如QQ、微信、新浪、短信)
  • 显示客户端的推送消息,如广告、优惠、版本更新、推荐新闻等
  • 显示正在进行的事物,例如:后台运行的程序,如音乐播放进度、下载进度等

下面我介绍下如何在app内发送通知的。大致可以分为以下步骤

  • 获取NotificationManager对象
  • 通过构建者模式创建出Notification对象(Notification.Builder)
  • 发送通知

我们可以通过Notificaiton.Builder设置各种属性,这里我先创建一个最简易的通知,我们只要设置了小图标、标题、文本内容这3个属性便可以成功创建出Notification(这3个属性缺一不可)。当然我们也可以设置通知显示的效果,如响铃、震动等我们也只需在此进行设置即可,这里就不一一介绍。发送一条简易通知具体代码如下

 //获取NotificationManager实例
        NotificationManager notifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        //通过构建者模式创建Notification,最简易通知只要设置以下3个属性就可以了
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.wechat_small)
                .setContentTitle("这是最简易通知--我是标题")
                .setContentText("只有小图标、标题、内容--我是内容");
        //发送通知,第一个参数为Id开发者可以通过Id对通知进行更新和取消
        notifyManager.notify(2, builder.build());

8.0系统适配

我们在使用手机时,有时候下滑通知栏会发现有大量通知,不胜其烦。好在8.0系统后,Google引入了通知渠道这个概念,也就是说在8.0系统上用户可以自主选择关闭或者开启某类通知。如果你的项目的 targetSdkVersion 是在26或更高以上的版本,通过上面方式发送通知在8.0系统的手机上是收不到的,并且会弹出一条吐司提示channel为空,所以我们要进行适配。
未适配通知

对于通知的适配,在8.0系统就是多了个通知渠道(NotificationChannel),也就是说我们只要在发送通知时,创建通知渠道即可,下面就介绍下如何创建。
首先,创建通知渠道前提就是确保我们的项目targetSdkVersion指定在26或以上的版本。

然后我们在代码中进行通知渠道的创建,其代码的位置只要保证在发送通知前调用即可,你可以在application进行创建,这里我是直接在activity中进行创建的。并且创建通知渠道的代码只在第一次执行的时候才会创建,以后每次执行创建代码系统会检测到该通知渠道已经存在了,因此不会重复创建,也并不会影响任何效率。其代码如下


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值