文章目录
前言
一、订阅类-订阅方法缓存集合
二、事件类型-订阅者集合
三、订阅对象-事件类型集合
前言
首先声明几个数据结构 , 参考 【EventBus】EventBus 源码解析 ( 注册订阅者总结...>, List> METHOD_CACHE = new HashMap();
二、事件类型-订阅者集合
----
事件类型-订阅者集合 : Map, CopyOnWriteArrayList> subscriptionsByEventType;
三、订阅对象-事件类型集合
----
订阅对象-事件类型集合 : Map...>>> typesBySubscriber ;
Key - 订阅者对象 ;
Value - 订阅者对象中所有的订阅方法的事件参数类型集合 ;
在注册时 , 设置该对象对应的订阅方法接收的事件类型 , 在取消注册时..., 可以根据该订阅者对象 , 查找所有订阅方法的事件参数类型 , 然后再到 METHOD_CACHE 中 , 根据事件参数类型 , 查找对应的 MySubscription 集合 , 从而找到 MySubscription