EventBus源码解析

来源:互联网 发布:软件界面模糊 编辑:程序博客网 时间:2024/05/17 11:55

EnentBus注册源码说明

  1. 通过反射或注解的方式获取当前订阅者所有的订阅方法
  2. 获取当前订阅者订阅方法的事件类型
  3. 将当前订阅者添加到EventBus总的subscriptionsByEventType集合中
  4. 根据优先级,将订阅者插入到指定的位置
  5. 获取当前订阅者所有订阅的事件类型的typesBySubscriber集合
  6. 将该事件类型添加当前订阅者的typesBySubscriber中

EventBus发送事件源码说明

  1. 得到要发送事件的类型
  2. 根据事件类型获取所有的订阅者(subscriptionsByEventType)
  3. 循环向每个订阅者发送事件

EventBus解注册源码说明

  1. 通过typesBySubscriber获取该订阅者的所有事件类型
  2. 循环遍历每一个事件类型
  3. 获取事件类型的所有订阅者
  4. 遍历订阅者集合,如果查询的订阅者是当前页面的订阅者,才删除
原创粉丝点击