Notification framework层的处理流程分析(4)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:

        } 
 
 最终执行状态栏更新通知等事件都是在实现的CommandQueue.Callbacks里面执行。还是以addNotification为例:
 
Java代码 
public void addNotification(IBinder key, StatusBarNotification notification) { 
        boolean shouldTick = true; 
        if (notification.notification.fullScreenIntent != null) { 
            shouldTick = false; 
            Slog.d(TAG, "Notification has fullScreenIntent; sending fullScreenIntent"); 
            try { 
                notification.notification.fullScreenIntent.send(); 
            } catch (PendingIntent.CanceledException e) { 
            } 
        }  
 
        StatusBarIconView iconView = addNotificationViews(key, notification); 
        if (iconView == null) return; 
          //。。。以下省略N字。 
大致流程就是:调用StatusBarManagerService.java中的addNotification方法->(mBar不为空的话)执行mBar.addNotification(key, notification);->对应的是CommandQueue中的addNotification(IBinder key, StatusBarNotification notification)->CommandQueue中的mCallbacks.addNotification(ne.key, ne.notification);->StatusBarService中的addNotification。
 
3>.上面是提供相关功能的一些类,具体的notification的管理类是framework/base/services/java/com/android/server/NotificationManagerService.java,从该类的定义public class NotificationManagerService extends INotificationManager.Stub可以知道
他是用来实现接口中INotificationManager中定义的相关方法并向外部提供服务的类。主要向外提供public void enqueueNotificationWithTag(String pkg, String tag, int id, Notification notification,int[] idOut)方法。该方法实际上是调用public void enqueueNotificationInternal(String pkg, int callingUid, int callingPid,String tag, int id, Notification notification, int[] idOut),他里面提供了notification的具体处理方法。
  摘取部分代码片段看看:
 
 
Java代码 
if (notification.icon != 0) { 
                StatusBarNotification n = new StatusBarNotification(pkg, id, tag, 
                        r.uid, r.initialPid, notification); 
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • android 屏幕保护
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android成长的幕后推手:工程师鲁宾
  • Android歌词秀1.5版
  • MIUI:10个亮点及5处不足
  • 自己开发计算器(4)-完成!源代码公开!
  • Android开发者指南(29) —— USB Host and Accessory
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1