在Android app的使用中,Notification的使用非常频繁,比如qq收到一条信息,微博收到信息,系统提示手机系统该更新了,都是通过Notification实现的。
思维导图:
Notification-service–Intent–PendingIntent
分析:
通知栏主要涉及到三个类:Notification、NotificationManager和NotificationCompat。因为在新老版本中,通知栏改变比较大,会出现很多新老版本无法兼容的问题,因此在appcompat-v7库中提供了NotificationCompat这个类来解决兼容问题。注意:因为NotificationManager是一个系统内置的service,所以需要通过getSystemService(NOTIFICATION_SERVICE)方法获取。
使用流程:
1.通过getSystemService方法获得一个NotificationManager实例。
2.通过NotificationCompat.Builder()方法获取一个Notification的实例,并对Notification实例进行设置。
3.使用Intent添加启动时间
4.通过PendingIntent实现通知的点击效果。
5.通过Notification实例的notify()方法创建通知。notify()接收两个参数,第一个参数为id,第二个参数为Notification的对象。
代码如下:
注意:build()是Android 4.1(API level 16)加入的,用来取代getNotification().
运行结果:
Notification设置属性:
- setContentTitle 设置标题
- setContentText 设置内容
- setLargeIcon 设置通知栏大图标
- setSmallIcon 设置通知栏小图标
- setContent 设置RemoteViews
- setContentIntent 当通知条目被点击,就执行这个被设置的Intent.
- setDeleteIntent 当用户点击”Clear All Notifications”按钮区删除所有的通知的时候,这个被设置的Intent被执行
- setLights 设置闪光灯
- setSound 设置声音
- setPriority 设置优先级