Notification的一点总结

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代码。
原文地址:https://www.cnblogs.com/idealgrass/p/4257452.html