- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Notification调查
Notification简介 2
Notification功能 2
Notification结构 3
APP层的Notification 3
Service中的Notification 10
StatusBarService中的Notification 13
Notification流程 16
1.App发出Notification的流程可以参考“Notification结构”部分的分析 16
2.App更新已经发出的Notification 16
3.点击一条Notification发送intent启动activity 16
4.清除一条Notification 18
5.清除所有可以清除的Notification 22
6.部分Notification是不可清除的,需要StatusBar做对应处理 23
Notification数据结构和功能处理流程分析
Notification简介
Notification的数据结构封装为3个类,Notification,NotificationRecord和StatusBarNotification。
Notification是提供给App层创建Notification使用的数据结构。Notification包含title,icon,discription等内容。
NotificationRecord是NotificationManagerService用来管理所有Notification的数据结构。包含Notification数据结构,package,userid,id,tag,statusBarKey等内容,其中package,userid,id,tag可以用来唯一标识一个NotificationRecord,statusBarKey是可以唯一标识StatusBarManagerService中StatusBarNotification的。
StatusBarNotification是StatusBarManagerService中notification的数据结构,包含package,userid,id,tag和Notification数据结构等。
Notification关联最大的两个Service就是NotificationManagerService和StatusBarManagerService。其中NotificationManagerService是用于管理Notification并处理Notification相关事件的核心。事件包括新建,更新,删除Notification等
StatusBarManagerService是StatusBar的后台管理服务,处理StatusBar相关事件,例如显示Notification,Buttery/Signal Status,System Time等。同时也会处理Notification显示,消去,并且点击Notification时发送PendingIntent等也都需要通过这个Service。StatusBarManagerService也会跟NotificationManagerService交互,处理Notification相关的动作。
Notification相关最重要的APP是SystemUI,这个APP提供了StatusBar的界面,StatusBar拓展界面,Home画面等主要画面,并且为用户提供UI和Status进行交互。例如提示新到短信,未接来电,邮件提醒等。该app在如下路径中:
framework/base/packages/SystemUI/
Notification功能
App发出Notification,StatusBar进行显示
App更新已经发出的Notification
点击一条Notification发送intent启动activity
清除一条Notification
清除所有可以清除的Notification
部分Notification是不可清除的,需要StatusBar做对应处理
Notification结构
APP层的Notification
Notification类型
APP层Notification从显示上分为两种Normal和Big(Expanded) Notification
Normal Notification显示如图1:
图1
包含如下6个内容
1.Content title
2. Large icon
3. Content text
4. Content info
5. Small icon
6. Time that the notification was issued.
其中Small ico
文档评论(0)