LocalBroadcast详解及源码分析
来源:互联网 发布:linux用cp复制文件 编辑:程序博客网 时间:2024/06/05 16:53
LocalBroadcast详解及源码分析
Broadcast作为Android的四大基础组件之一,重要作用不言而喻。常用的广播也有好几种:普通广播,有序广播,粘性广播,本地广播。今天说的便是最后一个。
首先,广播的注册与注销过程:
我们还需要一个发送方和接受者:
本地广播主要和两个类(LocalBroadManager与BroadcastReceiver)有关,从源码中看注册过程就是一个HashMap的创建过程,key为我们创建的BroadcastReceiver对象,value为一个ArrayList的Intentfilter对象,所以在合适的时机需要解注册即清除此HashMap以释放内存。
本地广播的发送需通过LocalBroadManager的sendBroadcast方法,传递一个Intent对象
在sendBroadcast方法中的工作就是通过匹配Intentfilter,让Intent在注册的Hashmap中找出所有符合的BroadcastReceiver对象,就来到了LocalBroadManager的executePendingBroadcast方法,其中的主要过程:
这样就来到了BroadcastReceiver对象的onReceive方法,因为其在主线程中运行,所以也不能执行耗时工作(10 S)。
总结一下,本地广播的主要流程都是在LocalManager类,实现了在本地进程中的传递信息。
0 0
- LocalBroadcast详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- AsyncTask详解及源码分析
- Epoll详解及源码分析
- Epoll详解及源码分析
- IntentService详解及源码分析
- samba源码分析及配置详解
- Hibernate常用API详解及源码分析
- spark RDD详解及源码分析
- spark 调度模块详解及源码分析
- spark 调度模块详解及源码分析
- spark RDD详解及源码分析
- Java集合详解及List源码分析
- 剑指Offer:二叉树的镜像
- php实现签到功能
- Linux 下 安装最新 Python2.X
- 该屎的Mysql乱码
- 新版Java为什么要修改substring的实现
- LocalBroadcast详解及源码分析
- 微信小程序版豆瓣同城
- tomcat 配置数据源
- 笛卡尔积
- Leetcode 241. Different Ways to Add Parentheses
- 取数字问题2-动规
- 【AngularJS】自定义过滤器
- 补充装饰器
- eee