首页 > 代码库 > Notificaiton状态通知栏 代码详解1

Notificaiton状态通知栏 代码详解1

 

 


 

 

状态通知栏主要涉及到2个类:  Notification 和 NotificationManager 

Notification为通知信息类,它里面对应了通知栏的各个属性

NotificationManager :  是状态栏通知的管理类,负责发通知、清除通知等操作。

注意:NotificationManager 是一个系统Service,所以必须通过 getSystemService(NOTIFICATION_SERVICE)方法来获取,方法如下。

NotificationManager mNotificationManager = (NotificationManager) Application.getInstance().getSystemService(Context.NOTIFICATION_SERVICE);

 

创建一个通知

-① 创建 NotificationCompat.Builder  通知栏的Builder构造类,设定通知的UI信息和行为

- 调用NotificationCompat.Builder.build()来创建通知

- 调用NotificationManager.notify()来发送通知

 

通知栏的Builder构造类

NotificationCompat.Builder builder = new NotificationCompat.Builder(MyApplication.getInstance())

 

设定通知的UI信息和行为

mBuilder.setContentTitle("测试标题")//设置通知栏标题    .setContentText("测试内容") //设置通知栏显示内容    .setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL)) //设置通知栏点击意图//    .setNumber(number) //设置通知集合的数量    .setTicker("测试通知来啦") //通知首次出现在通知栏,带上升动画效果的    .setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间    .setPriority(Notification.PRIORITY_DEFAULT) //设置该通知优先级//    .setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消      .setOngoing(false)//ture,设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)    .setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合    //Notification.DEFAULT_ALL  Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission    .setSmallIcon(R.drawable.ic_launcher);//设置通知小ICON

 


 

必要的通知内容

一条通知必须包含:

- 一个小图标,用setSmallIcon()来设置

- 一条标题,用setContentTitle()来设置

- 详情文字,用setContentText()来设置

 

可选的通知内容与设置

- 其余所有项目都是可选的,具体参阅NotificationCompat.Builder参考文档

 

通知的行为

- 虽然是可选项,但是你应当为你的通知添加至少一个行为。

- 行为允许用户直接转向应用中的一个活动。

- 通知可以提供多个行为:

> 你应当总是定义用户点击所触发的行为。这个行为通常是用来打开一个活动。

> 你还可以在通知中添加按钮以执行附加的动作,如延迟一个闹钟或者快速回复一条短信。这个特性从Android 4.1开始可用。

> 如果使用附加行为按钮,那么在你的活动中也必须使这些功能可用。

 

- 如何定义行为?

> 行为由一个PendingIntent来定义。PendingIntent包含一个用来启动活动的intent

> 为了将PendingIntent与手势相关联,应当调用NotificationCompat.Builder的对应方法。如,如果你想要在点击通知的内容时启动一个活动,则要调用setContentIntent()方法来添加PendingIntent。

 

 


 

参考资料:

 Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)

 

 

 

Notificaiton状态通知栏 代码详解1