Android5.1SystemUI详解 - 图文(6)

2020-02-21 18:15

接下来,是根

据通知重要性,对其进行打分,分数在 -20到20 之间;

然后是对Notification的组装,然后对Notification的icon进行判断,若其不为零,便为有效通知,之后调用关键方法notifyPostedLocked():

到这里做了可见性的一些判断,就开始准备回调了,因为前面通知已经组装完毕准备显示到状态栏了,之后就需要将相关的通知消息告诉所有监听者。继续看到notifyPostedLocked()中调到的notifyPosted()方法:

这里INotificationListener的实现类是NotificationListenerService.Java;到这里就调到Listener的onNotificationPosted()方法;此方法是一个空的抽象方法;是由它的APP实例类来实现的。源码截图如下:

此方法,在BaseStatusBar类中实现,new NotificationListenerService() { ... 如下图:

};

时序图如下:

2.APP

清除(Cancel)通知

与\新增通知\类似的流程是\删除通知\,发起点在NotificationManager,之后经由NotificationManagerService处理和NotificationListenerService传递,最后到达各个继承自NotificationListenerService的子类中,只不过最后的处理方法变成了onNotificationRemoved。调用时序图下:

NotificationListenerService调用流程小结

简单来看,NotificationListenerService在系统通知的消息传递过程中,起到了代理的作用。继承自NotificationListenerService的类作为client端,真正的server端则是NotificationManagerService,由它负责整个Notification的控制与管理。NotificationManagerService将处理之后的结果通过NotificationListenerService返回给client端,最终各个client端(BaseStatusBar)通过onNotificationPosted()和onNotificationRemoved()方法拿到系统通知状态变更的相关信息。

一. 锁屏界面下拉通知如何实现 1. 线索点 A. 下拉、上拉时会触发NotificationPanelView.setNotifyStackExpansion B. 关闭屏幕时会触发PanelView.setExpandedHeightInternal


Android5.1SystemUI详解 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:竣工图的编制与归档

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: