Notification基本介绍
- Android support v4包提供了很多Notification的新特性的向下兼容
- 从Android4.1开始,Android系统开始支持内容更加丰富,定制化更强的Notification视图展示,例如可以展示多行文本,添加按钮等等
- Notification可以分为Big view视图和normal视图两种,BigView视图从4.1开始加入,normal视图被所有版本支持。
重要知识点
Notification必须要包含三个属性,否则不能显示
- A small icon, set by setSmallIcon()
- A title, set by setContentTitle()
- Detail text, set by setContentText()
Notification priority
占坑
Big View视图和Normal视图的区别
- Normal视图大小仅为64dp,只能展示一行主要内容,显示不完全的部分以”..."代替
- Big View视图大小为256dp,提供了三种样式,并且能够展示Action按钮,提供更复杂的操作
- 三种复杂视图
- BigTextStyle:
- BigPictureStyle:
- InboxStyle:
- Action
- 三种复杂视图
用户在Notification panel删除Notification的时候,客户端如何得到用户删除了Notification呢?
-
需求:客户端接收来自GCM的push消息,收到消息的时候,如果客户端在后台,或者被用户杀掉,那么发送Notification来提醒用户,新的Notifcation消息不能覆盖先前的Notification,而是累加起来显示给用户。但是Android的Notification系统并没有提供累加Notification的特性,客户端只能自己来实现,本地化存储Notification信息,用户在Notification panel clear或者点击 Notification的时候,消费点这些Notification,用户点击Notification的时候,会启动程序,程序自然可以删除本地存储了,但是如果用户是clear notification的时候该怎么办呢?
-
实现 设置Notification的delteIntent就可以了,用户clearNotification的时候,系统就会发送delete intent,响应该Intent的组件就可以进行清理工作了。特别需要需要注意的是用户在clear notification的时候,并不希望去启动程序,所以响应delete intent的组件设置为service是非常合适的。
Notification的Group机制和Category是干嘛用的?
- 通过设置Group,可以将多个Notification归类到一组中去,Android developer上有一个非常好的例子,例子中将三个notification归类到一个组中,设置第一个Notification 为group summary,这样notification1就发送到手机上,notification2和3发送到Android wear上
- 从Android 5.0开始,系统可以自动的将Notification进行分类,并且提供了几个分类,例如Email,call等等。
重要API
占坑
保持导航
- 完全杀掉Gmail,收到一个右键notification,点击notification,跳转到邮件内容界面,back键退回到右键列表界面,back退回到home screen
- 打开gmail,编辑一个新邮件,这时收到一个邮件notification,
技巧
- 使用Android stuido的模板可以很容易的生成代码非常完整的BigPictureStyle,BigTextStyle,InboxStyle,Normal样式的Notification代码。