EventBus源碼解析(一):概述
EventBus源碼解析(二):Register
EventBus源碼解析(三):Post/PostSticky
EventBus源碼解析(四):優(yōu)化-EventBusIndex
如果使用EventBusIndex就不用通過反射來查找訂閱者的回調(diào)方法了斤贰,可以很大地優(yōu)化性能。
SUBSCRIBER_INDEX = new HashMap<Class<?>, SubscriberInfo>();
putIndex(new SimpleSubscriberInfo(SecondActivity.class, true, new SubscriberMethodInfo[] {
new SubscriberMethodInfo("onMessageEvent", Object.class, ThreadMode.MAIN, 0, true),
}));
putIndex(new SimpleSubscriberInfo(MainActivity.class, true, new SubscriberMethodInfo[] {
new SubscriberMethodInfo("onMessageEvent", Object.class, ThreadMode.MAIN),
}));
APT主要生成上面的代碼辩棒,可見是把每一個(gè)訂閱者的方法進(jìn)行了拆解求橄,在應(yīng)用初始化的時(shí)候調(diào)用
EventBus.builder().addIndex(MyEventBusIndex()).installDefaultEventBus()
就可以把所有的監(jiān)聽者分解到前面說的容器里面