將lifecycle庫更新到 2.4.0 后,Android Studio 將所有生命周期事件標記為已棄用。
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun create() {
tts = TextToSpeech(context, this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun stopTTS() {
tts?.stop()
}
是否有任何等效的替代品,例如DefaultLifecycleObserver?
uj5u.com熱心網友回復:
它已被棄用,因為他們現在希望您使用 Java 8 并實作介面 DefaultLifecycleObserver。由于 Java 8 允許介面具有默認實作,因此它們使用所有方法的空實作定義了 DefaultLifecycleObserver,因此您只需要覆寫您使用的那些。
標記函式的舊方法@OnLifecycleEvent是 Java 8 之前專案的拐杖。這是允許類有選擇地選擇它關心的生命周期事件的唯一方法。另一種方法是強制這些類覆寫所有生命周期介面方法,即使將它們留空。
在您的情況下,更改您的類以實作 DefaultLifecycleObserver 并更改您的函式以覆寫 DefaultLifecycleObserver 的適用函式。如果您的專案尚未使用 Java 8,則需要更新您的 Gradle 構建檔案。將這些放在android模塊中的塊中build.gradle:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/383389.html
