EventBus框架原理流程图

EventBus框架原理流程图_第1张图片
EventBus框架原理流程图

1. Publisher是发布者, 通过post()方法将消息事件Event发布到事件总线

2. EventBus是事件总线, 遍历所有已经注册事件的订阅者们,找到里边的onEvent等4个方法,分发Event

3. Subscriber是订阅者, 收到事件总线发下来的消息。即onEvent方法被执行。注意参数类型必须和发布者发布的参数一致。


如何使用EventBus

1. 定义事件, 定义一个类,继承默认的Object即可,用于区分事件和传输数据。 本例为MsgEvent1和MsgEvent2

2. 添加订阅者:EventBus.getDefault().register(this); 将所在类作为订阅者,框架会通过反射机制获取所有方法及其参数。

订阅者所在类可以定义以下一个或多个方法用以接收事件:

public void onEvent(MsgEvent1 msg)

public void onEventMainThread(MsgEvent1 msg)

public void onEventBackgroundThread(MsgEvent1 msg)

public void onEventAsync(MsgEvent1 msg)

3. 发布者发布事件:EventBus.getDefault().post(new MsgEvent1("主线程发的消息1"));

一旦执行了此方法, 所有订阅者都会执行第二步定义的方法。

4. 取消订阅:EventBus.getDefault().unregister(this); 当订阅者不再被使用,或者被关闭时,最好进行取消订阅,不再接受事件消息。

5. 注意事项:发布者post方法参数是Object类型,也就是可以发布任何事件。订阅者接受消息时,只要定义的是第二步四个方法任意一个,并且参数和发布者发布的一致,即可被执行。发布者也可以通过第二步接收消息,订阅者也可以作为发布者发消息给自己。

你可能感兴趣的:(EventBus框架原理流程图)