EventBus源码详解
我们在使用EventBus的时候,首先要注册EventBus: EventBus.getDefault().register(this); 那么我们就从这段代码作为入口,一步一步探索EventBus的秘密! 我们先看看getDefault()这个方法: static volatile EventBus defaultInstance; public static EventBus getDefault() { if (defaultInstance == null) { synchronized (EventBus.class) { if (defaultInstance == null) { defaultInstance = new EventBus(); } } } return defaultInstance; } 很明显,采用了单例的设计模式。 进入register()方法查看: public void register(Object subscriber) { //通过反射,拿到这个类 Class<?> subscriberClass = subscriber.getClass(); //通过这个类,拿到所有subcriber注解的方法,并返回到一个集合里 List<SubscriberMethod> subscriberMethods =