Android EventBus源码分析,基于最新3.1.1版本,看这一篇就够了!!
EventBus运用发布-订阅模式,需要进行注册和反注册,在接收事件的方法上需要添加@Subcribe注解,且方法参数有且只有一个,参数类型是自定义的object对象。
在订阅者类中,需要执行
1、EventBus.getDault().register(this); --->获取this对象的类信息,通过反射获取包含注解的方法,封装成一个subscription对象保存起来
2、EventBus.getDault().unregister(this); ---》移除该对象对应的类信息
3、用注解修饰方法
@Subcribe(threadMode = ThreadMod.Main)
public void onReceiveMsg(EventMessage msg)
在发布者类中,
EventBus.getDault().post(msg) ---》找到对应的类对象的方法,反射调用invoke