如何从Architecture Components中使用@OnLifecycleEvent注释方法与LifecycleOwner挂钩?

时间:2018-09-24 08:48:11

标签: android android-architecture-components

看起来我们不需要使用kapt的{​​{1}}批注即可工作。那么,如何将它们连接起来?是某种运行时注释处理吗?

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

1 个答案:

答案 0 :(得分:1)

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

由于保留时间设置为RetentionPolicy.RUNTIME,因此解决方案正在运行。

反射很昂贵,因此它们正在为每个方法建立static缓存,并使用方法引用(仍然是反射)来调用每个方法。我没有任何数字可以提供它如何直接影响启动时间。