Notification 是一种具备全局效果的通知,它会展示在屏幕的顶端,首先会表现行为一个图标,当用户向下滑动的时候,会展现出通知的具体内容。css
由于 Android 的快速发展,随着 android 版本的快速升级,致使了一些兼容性问题。对于 Notification 而言,Android 3.0 是一个分水岭,在以前构建 Notification 推荐使用 NotificationCompate.Builder,它位于 android.support.v4.app 包中。而在 Android 3.0 后,通常推荐使用 Notification.Builder 构建。java
上面的组成元素依次是:android
在 Jelly Bean 中你能够为通知提供更多事件的细节。你能够经过扩展布局显示消息的前几行或者预览图片,这样用户能够看到更多的内容。用户能够经过 pinch-zoom 或者双手指滑动来打开扩展布局。Android 为单条消息提供了两种扩展布局(文字和图像)供你开发时使用。bootstrap
通知通常是经过NotificationManager
服务发送一个 Notification 对象来完成,NotificationManager 位于应用程序的框架层中,是一个重要的系统级服务,应用程序能够经过它来向系统发送全局的通知。app
NotificationManager 类是一个通知管理器类,以单例模式来获取其对象,该对象是由系统维护的服务。你能够经过调用context.getSystemService(Context.NOTIFICATION_SERVICE)
来获取 NotificationManager 对象。框架
你能够经过调用 NotificationManager 对象的notify()
方法来发送一个通知。notify() 有两个重载的方法:布局
notify (int id, Notification notification)notify (String tag, int id, Notification notification)
NotificationManager 在发送通知的时候,须要给 notification 设置一个惟一的标识,这个标识在调用 notify(id, notification) 的时候体现为参数id
,而在调用 notify(tag, id, notification) 时则体现为(tag, id)
的值对。ui
你也能够经过调用 notify() 来跟新某个通知。对于一个已经显示的通知,若是你想更新它,只需调用 notify() 方法,并传入一个(或一对)和原通知相同的标识便可。spa
Android 提供两种方式来移除通知:code
setAutoCancel (true)
,可使通知能够在用户点击以后自动消失。cancle(id)
或cancle(tag, id)
来移除某个指定的通知,或者,你能够经过调用cancleAll()
来移除全部通知。build
()->Notification
获得 Notification 对象。
setContentIntent
(PendingIntent )->Notification.Builder
提供一个 PendingIntent 来响应通知的点击事件。
setContentTitle
(CharSequence title)->Notification.Builder
设置标题
setContentText
(CharSequence text)->Notification.Builder
设置内容
setSubText
(CharSequence text)->Notfication.Builder
设置内容下面的一小行的文字
setTicker
(CharSequence tickerText)->Notification.Builder
设置收到通知时,在顶部显示的文字信息
setWhen
(long when)->Notification.Builder
设置通知时间,通常是设置收到的时间 System.currentTimeMillis()
setSmallIcon
(int icon)->Notification.Builder
设置右下角的图标,在接收到通知的时候也会在顶部显示这个小图标。
setLargeIcon
(Bitmap icon)->Notification.Builder
设置左边的大图标。
setAutoCancel
(boolean autoCancel)->Notification.Builder
使通知在用户点击以后自动消失(默认不消失)。
setDefaults
(int defaults)->Notification.Builder
向通知添加声音、闪烁和震动效果。
你能够经过位或运算符|
来组合多种属性:DEFAULT_SOUND
, DEFAULT_VIBRATE
, DEFAULT_LIGHTS
。
你也能够启动全部的默认属性:DEFAULT_ALL
。
setVibrate
(long[] pattern)->Notification.Builder
设置震动方式
setLights
(int argb, int onMs, int offMs)->Notification.Builder
设置闪烁灯提醒,参数依次是:灯光颜色、亮的持续时间、暗的持续时间。
不是全部颜色均可以,这跟设备有关,有些手机还不带三色灯;
另外,你须要为 Notification 设置 flags 为 Notification.FLAG_SHOW_LIGHTS 时才支持三色灯;
setSound
(Uri sound)->Notification.Builder
设置接收到通知时的铃声,但是是系统的,也能够是自定义的。
setOnGoing
(boolean ongoing)->Notification.Builder
设置它是一个正在进行的通知,它一般表示一个后台任务。如用户在播放音乐、下载文件、同步操做等,所以而占用设备。
setProgress
(int max, int progress, boolean indeterminate)->Notification.Builder
设置带进度条(ProgressBar)的通知,参数依次为:进度条的最大值、当前值、进度是否不肯定。
setPriority
(int proprity)->Notification.Builder
设置优先级
优先级 | 描述 |
---|---|
MAX |
重要而紧急的通知,通知用户这个事件是时间紧迫并且须要当即处理的。 |
HIGH |
高优先级,用于重要的通信内容,如短信或聊天等。 |
DEFAULT |
默认优先级,用于没有特殊优先级分类的通知。 |
LOW |
低优先级,用于通知一些不是很紧急的事件。 |
MIN |
最低优先级,用于后台消息(天气或位置信息),只有用户下拉通知栏时才能看到内容。 |