01 Notification与NotificationManager
02 构建一个NotificationManager
先添加两个按钮
运行出来会是这样的
这段代码里面添加了两个onClick事件
当触发这两个事件的时候分别调用发出通知和取消通知的方法
提前准备了两个图片
03 getSystemService获取Notifiction的对象
manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
04 创建Notificition的对象
通过链式结构去设置这个通知的属性
05 这个build里面有两个参数
一个是channelid
这个channelid是什么呢?
这是通知渠道NotificationChannel
这里需要对版本进行一个判断(只有大于8.0才能创建)
判断版本大于8.0之后
在创建一个通知渠道
进去看NotifictionChannel的参数
关键看第三个:通知重要程度
这里修改通知重要程度使其是否弹出
这样再写一个
manager.createNotifictionChannel(channel);
而且这样上面的代码NotifictionChannel里面的id和下面的channelid相当于形成一个绑定关系
06 通知notificition需要设置什么样的属性
这个设置的话是采用链式结构设置的
在.build前面换行
之后再添加这些属性
这个.setSmallIcon就是设置这个图片的id
注意点:这个图片不能有颜色
通知只要设置了前三个之后就可以了,其他的可以根据所需要的功能去设置
07 设置发送通知
需要用到notify这个方法
进而看这个方法需要哪些参数
注意这个id时刻随便写的
然后来使用这个方法
调用这个notify方法
那么这里对之前写的代码进行一个修改
先将其设置为全局的
在对notify的参数进行填充,id(随便设置)设置为1,Notifiction
这样之后就可以显示通知
但是这个时候点击这个通知,仍然不会跳转到app里面
08 如何去跳转呢
BitmapFactory.decodeResource(getResource(),R.id.____)
先来看一下这个setLargeIcon来设置通知的大图标
但是得将这个图片转化为Bitmap型的,所以得调用
这里也可以设置小图标的颜色
这个还可以设置跳转
但是这个Intent是pendingIntent intent
需要在前面先创建一个Intent
然后这里再创建一个activity
新建一个NotifictionActivity
首先这个NotifictionActivity 是继承了Activity
先oncreate
然后再在下面调用一个打印的方法
然后回到MainActivity里面去修改参数
创建了这个意图之后,
但是我们要创建的是pendingIntent
这样就创建好了
然后把pendingIntent传入之前的那个跳转方法里面
09 点击通知之后自动消除通知
另一种取消通知的方法
注意两个id必须要对应相同
船长科技
电子人,极客开发者,电子信息工程在读,介绍科技类,科幻类,以及分享一些互联网学习经验
公众号
欢迎关注“船长科技”
船长和你一起走进科技
探索生活中的科技
保持一颗好奇心