它被弃用了,因为他们现在希望你使用Java 8并实现接口DefaultLifecycleObserver。由于Java 8允许接口具有默认实现,因此他们定义了DefaultLifecycleObserver,其中包含所有方法的空实现,因此您只需要覆盖您使用的方法。
标记函数的旧方法是Java 8之前项目的拐杖。这是允许类有选择地选择它所关心的生命周期事件的唯一方法。另一种方法是强制这些类重写所有生命周期接口方法,即使将它们留空。@OnLifecycleEvent
在您的情况下,更改类以实现 DefaultLifecycleObserver,并更改函数以覆盖 DefaultLifecycleObserver 的适用函数。如果您的项目尚未使用 Java 8,则需要更新 Gradle 构建文件。将这些放在模块的块中:android
build.gradle
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
*注意:好吧,他们可以使用旧的Java模式来提供一个接口适配器类,该类具有每个接口函数的开放,空的实现。但是,这种方法的缺点是,听众必须只是一个听众。但我认为,如果你关心封装,通常应该如此。