动脑学院学习笔记-EventBus 3.0核心原理,打造事件分发框架
2017-06-02 00:26
302 查看
EventBus 解决消息事件传递,线程切换问题。订阅者模式,核心也是Hander机制。3.0加入注解,通过注册类的注解
RxBus是一个设计模式,核心原理是RxJava,链式调度,事件变换,线程切换,有入门门槛,效率比EventBus高。
1、消息传递,传统的实现方式: Intent方式 (繁琐,依赖方法),接口方式(处理单一,需要处理者的引用,面对复杂的业务,产生很多接口),广播(效率低,不安全,系统其他组件也可以接收);
2、事件变换,线程切换传统实现方式:Handler机制;
3、EventBus整个jar包100k,使用方式:
使用前:EventBus.getDefault().regeister(this);
使用注解定义事件处理方法:
@Subcrible (ThreadMode.MainThread)
public void receive(Object obj){
//必须是一个参数,多个参数会报错;多个参数时可以定义在Obj里
}
发送消息事件:
EventBus.getDefault().post(Object obj);
使用完:EventBus.getDefault().unRegister(this);
举例:求职应聘、中介、招聘公司三者之间的关系来说明设计思路。
华为(招聘公司),要把招聘信息发布到智联招聘(中介)网站上,智联会根据华为提供的招聘信息,使用容器进行存储;当求职者将自己的信息发布到智联之后,智联根据存储的华为招聘信息表,匹配相应的关键字等,从而通知华为,进行处理招聘相关事宜。
最后手写实现自己的EventBus框架。
【热门技术】EventBus 3.0,让事件订阅更简单,从此告别组件消息传
RxBus是一个设计模式,核心原理是RxJava,链式调度,事件变换,线程切换,有入门门槛,效率比EventBus高。
1、消息传递,传统的实现方式: Intent方式 (繁琐,依赖方法),接口方式(处理单一,需要处理者的引用,面对复杂的业务,产生很多接口),广播(效率低,不安全,系统其他组件也可以接收);
2、事件变换,线程切换传统实现方式:Handler机制;
3、EventBus整个jar包100k,使用方式:
使用前:EventBus.getDefault().regeister(this);
使用注解定义事件处理方法:
@Subcrible (ThreadMode.MainThread)
public void receive(Object obj){
//必须是一个参数,多个参数会报错;多个参数时可以定义在Obj里
}
发送消息事件:
EventBus.getDefault().post(Object obj);
使用完:EventBus.getDefault().unRegister(this);
举例:求职应聘、中介、招聘公司三者之间的关系来说明设计思路。
华为(招聘公司),要把招聘信息发布到智联招聘(中介)网站上,智联会根据华为提供的招聘信息,使用容器进行存储;当求职者将自己的信息发布到智联之后,智联根据存储的华为招聘信息表,匹配相应的关键字等,从而通知华为,进行处理招聘相关事宜。
最后手写实现自己的EventBus框架。
【热门技术】EventBus 3.0,让事件订阅更简单,从此告别组件消息传
相关文章推荐
- Android 框架学习2:源码分析 EventBus 3.0 如何实现事件总线
- 事件总线框架EventBus和Otto学习笔记
- 大数据学习笔记:YARN框架分析之事件的分发与状态机
- nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
- 《深入理解Android:Telephon原理剖析与最佳实践》学习笔记(系统框架)
- Android事件分发机制学习笔记
- 学习ViewGroup事件分发笔记(一)
- cocos2d-x学习笔记——EventDispatcher事件分发机制
- Java 学习笔记03:Spring 3.0 核心机制 IoC
- 2.26学习笔记 android事件分发,handler内存泄露
- cocos2d-x-3.1 事件分发机制 (coco2d-x 学习笔记七)
- Android事件分发机制学习笔记
- Cocos2d-x 3.2 学习笔记(九)EventDispatcher事件分发机制
- Android事件分发机制学习笔记
- Caliburn.Micro for wp7 学习笔记(3) : 响应 Butto事件原理
- 《深入理解Android:Telephon原理剖析与最佳实践》学习笔记(系统框架)
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第五步---着手打造游戏界面
- 学习View事件分发笔记(一)
- 学习笔记-touch事件分发:viewpager中的listview
- 【学习笔记】Silverlight框架:Jounce(4)——事件通信