EventBus实现原理浅解

主要角色包含四部分:

  1. EventBus 资源管理类,大部分资源和操作都在该类实现
  2. Subscriber 订阅者,订阅Event的类
  3. SubscriberRegistry 订阅者队列,根据不同Event存储订阅者(Map)
  4. Dispatcher 事件分发器,执行Event分发

主要方法:

注册 EventBus.getDefault().register(this);
调用此方法EventBus会拿到当前类所有的注解方法,SubscriberRegistry遍历方法集合,根据Event将当前订阅者存储起来

注销 EventBus.getDefault().unregister(this);
将 当前订阅者从订阅者队列中移除

发送事件 EventBus.getDefault().post("1");
根据当前发送的Event从订阅者队列中找到订阅者们逐一执行事件

发送粘性事件 EventBus.getDefault().postSticky("2");
将当前Event存储到单独的StickyEvent队列中,当订阅者执行register方法时会在当前队列中找的需要执行的Event进行post

你可能感兴趣的:(EventBus实现原理浅解)