@OnLifecycleEvent架构组件中的注释方法如何与LifecycleOwner连接?

Dmi*_*nko 6 android android-architecture-components

它看起来像我们并不需要使用kapt@OnLifecycleEvent注释工作.那么,他们如何联系起来呢?它是某种运行时注释处理吗?

我问,因为我很好奇使用这些注释的成本是多少.使用它们会影响应用程序启动时间吗 还是项目编译时间?

Nik*_*ski 3

他们使用反射来查找带​​注释的函数@OnLifecycleEvent。这就是类应该实现的真正需要LifecycleObserver。如果要做的话kapt,可能就不应该有任何接口需要实现。

分辨率取决于运行时,因为保留设置为 RetentionPolicy.RUNTIME

反射是昂贵的,因此他们正在构建static每个方法的缓存,并使用方法引用(是的仍然是反射)来调用每个方法。我没有数据可以说明它如何直接影响启动时间。