通知机制 是Android和用户交互,提高APP活跃度的重要手段,可以将一些重要的信息通过通知展示给用户,比如说新的聊天消息或者日历事件。Notification的设计理念是既将重要的信息告知用户又不会打断用户当前的行为,如果信息使用户关注的,用户会点击主动去执行相关的操作,对于一个APP来说,通知也不可以滥用,否则冗余的消息通知只会疏远你的用户。
通知可以分为ToastNotification和StatusBarNotification,Toast相对简单,我们主要研究的的是StatusBarNotification
Notification的功能作用
1.显示接收到短信、即时消息等信息 (如QQ、微信、短信)
2.显示客户端的推送消息(如有新版本发布,广告,推荐新闻等)
3.显示正在进行的事物(后台运行的程序,如音乐播放器、版本更新时候的下载进度等)
Notification的表现形式
一个通知到来之后,一般会闪烁一个5s的ticker,然后状态栏显示通知图标,下拉状态栏显示消息通知的完整信息,如下图,发送通知的同时也可以给notification添加声音、震动、闪光灯等功能用来提醒用户。
当用户点击这个notification 时,系统就会根据创建 notification 时传入的Intent来启动对应的Activity。当后台服务需要提示用户来响应某个事件时,也应该使用状态栏通知。后台服务不应该自己去启动一个 activity 来与用户互动,它应该创建一个状态栏通知,当用户选择这个通知时再去启动 activity.
可以在 Activity或者 Service中初始化一个状态栏通知,但是由于 activity 只能在它运行在前台并获取焦点时采取操作,一般我们只是用做测试,所以状态栏通知通常都是由服务创建的。
创建和更新一个Notification
使用 Notification类和 NotificationManager类来创建一个状态栏通知
NotificationManager类是用来管理所有通知的系统服务,通getSystemService()方法来获得它的引用。使用Notification实例去配置一个状态栏通知的属性,比如图标、内容、其他的设置)等。然后,通过notify()方法将你的Notification发送出去.
Android3.0之前,直接创建一个Notification
1. 获取