1.什么是通知
通知是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些二提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。
2.通知的基本用法
① 首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystem-Service()方法获取到。该方法接收一个字符串参数用于确定获取系统的哪个服务。传入:Context.NOTIFICATION_SERVICE
②需要使用一个Builder构造器来创建Notification对象:
Notification notification = new NotificationCompat.Builder(context).build();
可以使用下面方法来创建一个丰富的对象
③需要调用NotificationManager的notify()方法就可以让通知显示出来了。notify()方法接收两个参数,第一个参数是id,要保证为每个通知所指定的id都是不同的。第二个参数则是Notification对象,这里直接将我们刚刚创建好的Notification对象传入即可。
manager.notfy(1,notification);
3.PendingIntent与Intent
PendingIntent从名字上看起来就和Intent有些类似,它们之间也确实存在着不少共同点。比如它们都可以去指明某一个“意图”,都可以用于启动活动、启动服务以及发送广播等。不同的是,Intent更加倾向于去立即执行某个动作,而PendingIntent更加倾向于在某个合适的时机去执行某个动作。所以,也可以把PendingIntent简单地理解为延迟执行的Intent。
4.PendingIntent基本用法
第一个参数是Context;第二个参数一般用不到,通常都是传入0即可。第三个参数是一个Intent对象,我们可以通过这个对象构建出PendingIntent的“意图”。第四个参数用于确定PendingIntent的行为,有FLAG_ONE_SHOT、FLAG_NO_CREATE、FLAG_CANCEL_CURRENT和FLAG_UPDATE_CURRENT这4种值可选
步骤:创建PendingIntent对象,在Builder中使用set方法使用
4.点击后通知消失
第一种方法
.setAutoCancel(true)
第二种方法:
cancel中的数字为manager.notfy(1,notification);中对应的数字
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1)
5.setPriority()
接收一个整型参数用于设置这条通知的重要程度,一共有5个常量值可选:PRIORITY_DEFAULT表示默认的重要程度,和不设置效果是一样的;PRIORITY_MIN表示最低的重要程度,系统可能只会在特定的场景才显示这条通知,比如用户下拉状态栏的时候;PRIORITY_LOW表示较低的重要程度,系统可能会将这类通知缩小,或改变其显示的顺序,将其排在更重要的通知之后;PRIORITY_HIGH表示较高的重要程度,系统可能会将这类通知放大,或改变其显示的顺序,将其排在比较靠前的位置;PRIORITY_MAX表示最高的重要程度,这类通知消息必须要让用户立刻看到,甚至需要用户做出响应操作。