什么是事件总线管理
将事件放到队列里,用于管理和分发
保证应用的各个部分之间高效的通信及数据,事件分发
模块间解耦
EventBus简介
EventBus是一个发布/订阅的事件总线。EventBus模式-也被称为MessageBus或者发布者/订阅者(publish/subscriber)模式- 可以让两个组件互相通信,但是他们之间并不互相知晓。(很像广播机制)
基于事件总线管理/订阅/分发模式的。事件响应有更多的线程选择,EventBus可以向不同的线程中发布事件。EventBus支持StickyEvent。(没接触过StickyEvent,查阅资料 应该是当处理完成之后,依然存在,知道手动去掉的事件,即滞留事件)
使用时需要先注册订阅,然后向订阅者分发消息数据即可。包含4个成分:发布者,订阅者,事件,总线。订阅者可以订阅多个事件,发送者可以发布任何事件,发布者同时也可以是订阅者。分订阅、注册、发布、取消注册等步骤。
EventBus与otto的对比
EventBus采用命名规范, otto采用注解,EventBus效率会高一些
EventBus支持交互线程、主线程、后台线程、异步的事件传递。otto只支持交互线程的事件传递
EventBus基本用法
注册 EventBus.getDefault().register(this,"接收方法名","事件类"); 后面2个参数可省略
取消注册 EventBus.getDefault().unregister(this);
订阅接收处理数据 默认 public void Event(){}
主线程 public void onEventMainThread(){}
交互式线程 onEventPostThread
后台线程 onEventBackgroundThread
异步接收 onEventAsync
发布消息 EventBus .post("传递的数据");