标签:
Notification 是一种具有全局效果的通知,它会展现在屏幕的顶端,首先会表现行为一个图标,当用户向下滑动的时候,会展示出通知的具体内容。
因为 Android 的快速发展,随着 android 版本的快速升级,导致了一些兼容性问题。对于 Notification 而言,Android 3.0 是一个分水岭,在之前构建 Notification 推荐使用 NotificationCompate.Builder,它位于 android.support.v4.app 包中。而在 Android 3.0 后,一般推荐使用 Notification.Builder 构建。
上面的组成元素依次是:
在 Jelly Bean 中你可以为通知提供更多事件的细节。你可以通过扩展布局显示消息的前几行或者预览图片,这样用户可以看到更多的内容。用户可以通过 pinch-zoom 或者双手指滑动来打开扩展布局。Android 为单条消息提供了两种扩展布局(文字和图像)供你开发时使用。
通知一般是通过NotificationManager
服务发送一个 Notification 对象来完成,NotificationManager 位于应用程序的框架层中,是一个重要的系统级服务,应用程序可以通过它来向系统发送全局的通知。
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)
的值对。
你也可以通过调用 notify() 来跟新某个通知。对于一个已经显示的通知,如果你想更新它,只需调用 notify() 方法,并传入一个(或一对)和原通知相同的标识即可。
Android 提供两种方式来移除通知:
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 |
最低优先级,用于后台消息(天气或位置信息),只有用户下拉通知栏时才能看到内容。 |
标签:
原文地址:http://www.cnblogs.com/thens/p/5596453.html