Broadcast&ContentProvider&eventBus拾遗草稿

组件入口 Activity -- onCreate Service -- onCreate Broadcast Receiver -- onReceive Content Provider -- onCreate

一 Broadcast 分成静态注册和动态注册.
广播的注册不同于service的sm注册,binder的实现主体是os,与sm没关系。广播是转发主体是ams转发的。
register和发送消息都是binder. 转发消息是hashmap.key 是消息,value是接收方.
每种系统都有异步通信机制。linux的信号回到,angularjs的observerable event.

 动态注册

静态注册

虚线为逻辑实现,也是代码实现。mActivityThread.post 发送,mReceiver.onReceive接收。实际是通过ReceiverDispatcher和BroadcastReceiver完成的.
参考:https://my.oschina.net/youranhongcha/blog/226274

使用流程

接收者向AMS注册,发送者向AMS发送消息.AMS转发.
AMS结构

broadcast_relation1

二  contentProvider

Content Provider数据访问接口 Insert Update Delete Query Call -- Hidden

Content Provider数据更新机制 注册内容观察者 -- ContentResolver.ContentObserver 发送数据更新通知 -- ContentResolver.notifyChange

发送Content Provider数据更新通知


通过反射从具体的ContentProvider之中取出了所有的方法.
ContextImpl是一个很重要的数据结构,它是Context的具体实现.

contentProivder和sqlite区别?两者用法类似。
前者是跨进程访问,比如: 淘宝想访问电话本.后者用于一个进程中.

为什么不跨进程直接访问存储呢?比如:进程A直接open db即可。而是用contentProvider访问呢?
数据库,文件存储或者网络存储是存储的3种方式.
ContentProvider将数据封装好了,这样就能方便的管理数据了。它主要用于不同应用间,不同进程间的信息的共享

content resolver和content provider关系?直接用provider不行吗?
理解为一个resolver可以对应多个provider.防止使用不同的provider方法不一样。

四 eventbus

eventbus和aidl关系?异步通信
eventbus:register,callback。
eventbus 适用进程通信还是线程通信
eventbus handle 关系:一个异步一个同步
eventbus和broadcastreceiver的区别?
broadcast是一直都有监听,register到ams.eventbus不用注册到总控,直接注册到对象,用完销毁.
eventbus和回调有什么区别?eventbus改写回调函数
eventbus使用
eventbus源码分析

Android EventBus 使用详解 https://blog.csdn.net/zhq1363790125/article/details/51135645
EventBus源码分析(四):发送Event和响应注册的回调方法 https://blog.csdn.net/u011315960/article/details/77836915
简单使用EventBus,告别繁琐的接口回调(1) https://www.cnblogs.com/cherrylv/p/6432873.html
个人对EventBus和回调的一些思考 https://www.jianshu.com/p/e41e580eff10
BroadcastReceiver和EventBus区别是什么 https://www.cnblogs.com/powerlx/p/5275140.html
EventBus事件总线(个人理解监听回调,勿喷) https://www.it610.com/article/1282791575675486208.htm
android EventBus详解(三) https://www.houtouke.com/21600.html
EventBus 源码解析 https://www.trinea.cn/android/eventbus-source-analysis/
EventBus核心原理其实保存这三张图就可以弄懂了,收藏一下 https://www.jianshu.com/p/4d77d1836d9e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值