首先在应用级别的gradle中添加一些必要的依赖项
dependencies {
def lifecycle_version = "2.1.0"
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"
annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version"
testImplementation "androidx.arch.core:core-testing:$lifecycle_version"
}
你可以在这里参考最新的依赖版本。
https://developer.android.com/jetpack/androidx/releases/lifecycle?authuser=1
你的应用程序必须扩展Application类并覆盖以下示例中给出的方法。
您可以使用arch库的生命周期感知组件轻松实现相同的功能。我刚刚发布了一个适用于Kotlin和Java的示例代码,供您使用。
Java版本。
public class YourApp extends Application implements LifecycleObserver {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onEnteredForeground() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onEnteredBackground() {
}
}
Kotlin版本:
class ZumeApp : Application(), LifecycleObserver {
override fun onCreate() {
super.onCreate()
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onEnteredForeground() {
Timber.d("Application did enter foreground")
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onEnteredBackground() {
Timber.d("Application did enter background")
}
}
我希望这能对你有所帮助。如果无法正常工作,请留下评论或参考Android文档中的以下文章。
https://developer.android.com/topic/libraries/architecture/lifecycle?authuser=1