2019-01-07

2019-01-07  本文已影响0人  _Kirer

Butterknife 

1.编译时注解

2.AbstractProcessor(ButterKnifeProcessor) -> process 扫描和处理注解的代码

3.javapoet生成相关的Java文件(XXX_ViewBinding)

4.最后还是会调用findViewById()方法

5.setOnClickListener()方法,传入的是DebouncingOnClickListener(防止一定时间内对view的多次点击)

EventBus 

1.编译时注解(@Subscribe)和运行时注解(@Subscribe(Sticky = true)java反射机制)

ignoreGeneratedIndex 利用反射来获取订阅类中的订阅方法信息 或 从注解器(EventBusAnnotationProcessor)生成的类中获得订阅类的订阅方法信息

2.观察者模式(为了定义对象间的一种一对多的依赖关系,即当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新)

3.EventBus#getDefault() 单例模式生成EventBus实例

4.EventBus#register() --> 通过反射的方式获取订阅者类中的所有声明方法,然后在这些方法里面寻找以@Subscribe作为注解的方法进行处理

5.sticky(粘性事件,该事件会被EventBus保存,订阅者在发布事件之后订阅该事件,还是可以收到该事件,注意:EventBus只会保存最新的一条消息,会把原来的消息覆盖掉)

上一篇 下一篇

猜你喜欢

热点阅读