总结

来源:互联网 发布:js url 中文乱码 编辑:程序博客网 时间:2024/06/04 20:05

1、Event Bus 用到的设计模式为观察者设计模式;

2、核心原理是:利用反射的机制调用订阅者中订阅的方法;

3、简单过程:

EventBus.getDefault().register(this);@Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行public void onDataSynEvent(EventMsg event) {    tvShowMsg.setText(event.getMsg());}

这一过程主要是通过反射机制,找到this对象中使用Subscribe注解的方法,将参数EventMsg类型作为key,this对象作为值对象中的一个变量,保存到subscriptionsByEventType键值对中;

EventMsg msg = new EventMsg();msg.setMsg("hello eventBus");EventBus.getDefault().post(msg);

这一过程也利用到了反射机制,首先通过EventMsg作为key找到subscriptionsByEventType键值对中的值,然后通过反射机制
subscription.subscriberMethod.method.invoke(subscription.subscriber, event);

触发订阅者中订阅方法的执行。

原创粉丝点击