标签:
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