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

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

  拿addNotification方法示范:
Java代码 
public IBinder addNotification(StatusBarNotification notification) { 
                synchronized (mNotifications) { 
                IBinder key = new Binder(); 
                mNotifications.put(key, notification); 
                if (mBar != null) { 
                try { 
                    mBar.addNotification(key, notification); 
                  } catch (RemoteException ex) { 
               } 
            } 
            return key; 
        } 
      } 
 这里的mBar其实就是IStatusBar的实例
Java代码 
volatile IStatusBar mBar; 
 为了防止NPE,每次使用mBar都先判断是否为null,mBar是在方法registerStatusBar中传递进来的。
Java代码 
public void registerStatusBar(IStatusBar bar, StatusBarIconList iconList, 
            List<IBinder> notificationKeys, List<StatusBarNotification> notifications) { 
        enforceStatusBarService(); 
 
        Slog.i(TAG, "registerStatusBar bar=" + bar); 
        mBar = bar; 
        synchronized (mIcons) { 
            iconList.copyFrom(mIcons); 
        } 
        synchronized (mNotifications) { 
            for (Map.Entry<IBinder,StatusBarNotification> e: mNotifications.entrySet()) { 
                notificationKeys.add(e.getKey()); 
                notifications.add(e.getValue()); 
            } 
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 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