Lifecycle
添加依赖
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
Application生命周期绑定
创建observe
需要声明一个ApplicationObserve类实现LifecycleObserver(或者使用内部类的方式,但是不推荐)
ApplicationObserve中声明各个生命周期,需要用到@OnLifecycleEvent注解
应用新建时会调用onCreate,进入后台会调用onStop,进入前台会调用onResume
public class ApplicationObserve implements LifecycleObserver {//只是应用的生命周期 与activity无关
private static String TAG = "ApplicationObserve";
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void onCreate() {
Log.i(TAG, "onCreate: Lifecycle.Event.ON_CREATE");
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void onResume() {
Log.i(TAG, "onResume: Lifecycle.Event.ON_RESUME");
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onStop() {
Log.i(TAG, "onStop: Lifecycle.Event.ON_STOP");
}
}
与Application绑定
在Application加入这行代码即可
ProcessLifecycleOwner
.get()
.getLifecycle()
.addObserver(new ApplicationObserve());
Service、Activity、Fragment生命周期绑定
同样需要创建一个observer类来实现LifecycleObserver,注解也是用到@OnLifecycleEvent,只是绑定方式与Application有些不一样,在service中直接getLifecycle()即可,Activity、Fragment同理
public class MyLocationService extends LifecycleService {
public MyLocationService() {
MyLocationObserver observer = new MyLocationObserver(this);
getLifecycle().addObserver(observer);// 添加observer
}
}