在上一篇中我们介绍了如何使用LifecycleService介绍来监听Service的生命周期,本篇我们将介绍使用ProcessLifecycleOwner监听应用程序的生命周期。ProcessLifecycleOwner将监控应用程序当前处于前台还是后台,或者是从后台回到前台时,我们可以收到通知。
1.使用ProcessLifecycleOwner监听应用程序的生命周期
(1)首先我们需要在app的build.gradle文件中添加相关依赖:
dependencies {
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
}
(2)创建ApplicationObserver用于监听App生命周期,实现LifecycleObserver接口,具体代码如下:
public class ApplicationObserver implements LifecycleObserver {
private static String TAG = "ApplicationObserver";
/**
* App创建时执行一次
*/
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
private void onCreate(){
Log.d(TAG,"onCreate");
}
/**
* App回到前台时被调用
*/
@OnLifecycleEvent(Lifecycle.Event.ON_START)
private void onStart(){
Log.d(TAG,"onStart");
}
/**
* App回到前台时被调用
*/
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
private void onResume(){
Log.d(TAG,"onResume");
}
/**
* App退到后台时调用
*/
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
private void onPause(){
Log.d(TAG,"onPause");
}
/**
* App退到后台时调用
*/
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
private void onStop(){
Log.d(TAG,"onStop");
}
/**
* 系统不会分发ON_DESTROY事件,永远不会被调用
*/
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
private void onDestroy(){
Log.d(TAG,"onDistory");
}
}
(3)定义Application并注册ApplicationObserver,具体代码如下:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(new ApplicationObserver());
}
}
(4)启动App后,我们看下运行结果:
至此,使用ProcessLifecycleOwner监听应用程序的生命周期已经全部实现完成,同时Jetpack的整个Lifecycle系列组件也全部介绍完成。在接下来的篇幅中,我们将会开始介绍Navigation系列组件的使用。