如果使用Java 7语言,则使用注释观察生命周期事件。一旦Java8语言成为Android上的主流语言,注释就不再受欢迎了,所以在
DefaultLifecycleObserver和注释之间,您必须始终更喜欢DefaultLifecycleObserver。
class TestObserver implements DefaultLifecycleObserver {
@Override
public void onCreate(LifecycleOwner owner) {
// your code
}
}哪些特定的Java 8语言/jvm特性正在推动生命周期注释的废弃?例如,在使用DefaultLifecycleObserver时,我们是否获得了更好的性能(构建还是运行时)?
发布于 2021-08-03 08:52:22
我认为这是因为DefaultLifecycleObserver使用接口默认方法,这是Java8的一个特性。
发布于 2022-03-12 09:14:52
如文件所述:
这个注释需要使用代码生成或反射,这是应该避免的。使用DefaultLifecycleObserver或LifecycleEventObserver代替。
应该避免反射吗?
在应用程序代码中使用反射通常是个坏主意,因为您失去了语言的严格类型检查。反射通常用于框架代码,这是必不可少的。..。如果可以不使用反射来执行操作,那么最好避免使用它。
最终视图:
这是不可取的,因为他们现在期望您使用Java 8并实现接口DefaultLifecycleObserver。因为Java 8允许接口具有默认实现,所以它们定义了DefaultLifecycleObserver,其中包含所有方法的空实现,因此您只需要覆盖所使用的方法。用@OnLifecycleEvent标记函数的旧方法是Java前8项目的支柱。这是允许类有选择地选择它关心的生命周期事件的唯一方法。另一种方法是强制这些类覆盖所有生命周期接口方法,即使它们是空的。
https://stackoverflow.com/questions/61663501
复制相似问题