Notifycation速查笔记

  • 内容
  • 评论
  • 相关

Notifycation的组成元素

对于一个通知来说,主要包含下面六个部分。其中只有1、3、5三项是必须设置的,其余几项可选。不同ROM以及不同版本默认实现不同。

对上图中六个部分相应的设置函数如下

 创建一个Notifycation的步骤

1>实例化一个Notification.Builder对象

2>调用builder的相关方法对notification进行上面提到的各种设置

3>调用builder.build()方法此方法返回一个notification对象。

4>实例化一个NotificationManager对象。

5>调用NotificationManager的notify方法。

实例如下:

自定义Notifycation的布局

要想自定义Notifycation的布局,我们需要使用android.widget.RemoteViews对象,然后通过setContent()方法即可将视图设置给Notifycation。如果我们想刷新一个已经发出的Notifycation,那么我们需要在调用NotificationManager的notify方法的时候传入相同的id即可。

支持的View类型

  • FrameLayout、LinearLayout、RelativeLayout、GridLayout、AnalogClock、Button、Chronometer、ImageButton、ImageView、ProgressBar、TextView、ViewFlipper、ListView、GridView、StackView、AdapterViewFlipper、ViewStub。
  • 只支持上述的View,不支持它们的子类和其他类型的View,所以无法在RemoteViews中自定义View,如果使用了不支持的布局那么会不显示

Notifycation的其他常用方法

  • builder.setVibrate(long[]) 设置震动
  • setPriority() 设置优先级
优先级 用户
MAX 重要而紧急的通知,通知用户这个事件是时间上紧迫的或者需要立即处理的。 Notification.PRIORITY_MAX
HIGH 高优先级用于重要的通信内容,例如短消息或者聊天,这些都是对用户来说比较有兴趣的。 Notification.PRIORITY_HIGH
DEFAULT 默认优先级用于没有特殊优先级分类的通知。 Notification.PRIORITY_DEFAULT
LOW 低优先级可以通知用户但又不是很紧急的事件。 Notification.PRIORITY_LOW
MIN 用于后台消息 (例如天气或者位置信息)。最低优先级通知将只在状态栏显示图标,只有用户下拉通知抽屉才能看到内容。 Notification.PRIORITY_MIN
  • setOngoing(true/false)

功能:设置为ture,表示它为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接),常驻通知栏,只能通过NotifycationManager .cancel(id) 取消

  • setProgress(int max, int progress,boolean indeterminate)

max:进度条最大数值  、progress:当前进度、indeterminate:表示进度是否不确定,true为不确定,设置带进度条的通知,可以在下载中使用

Notifycation 8.0的更改

关于在高版本上面的Notifycation的改变,可以查看http://27house.cn/archives/1410

官方文档(请查看英文版,比较新)

评论

0条评论

发表评论

邮箱地址不会被公开。