Lifecycle
简介:生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。
这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。一种常见的模式是在 Activity 和 Fragment 的生命周期方法中实现依赖组件的操作。但是,这种模式会导致代码条理性很差而且会扩散错误。通过使用生命周期感知型组件,您可以将依赖组件的代码从生命周期方法移入组件本身中。
使用方法
1 首先我们的项目是建立再AndroidX 这个支持包的 ,以前的support 支持包下并不支持使用 jetpack的新架构组件 我们需要先切换成AndroidX。还没切换的可以先看 转AndroidX依赖包的 具体很简单 就不再此处说明 自行百度或官网查看。
2 引入我们需要的依赖
def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"
具体最新版本可以自己去官网查看
3 建立我们自己逻辑的观察者( lifecycle 是基于我们的 观察者模式的)
public class LifeObserver implements LifecycleObserver {
private String TAG = "liu";
/**
* @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
* 加入OnLifecycleEvent注解 传入参数表示我们的被观察者的生命周期那一个时刻调用我们的方法(再我们生命方法执行后加入)
* 再
*/
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void Create(){
Log.d(TAG,"onCreate---------------------------------");
}
}
4 将我门的LifecycleObserver 绑定到需要观察的 activity或者fragment 上
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//生成我们的监听器(观察者)
LifeObserver lifeObserver = new LifeObserver();
//将我们的监听器绑定到activity的 lifcycle上面。
getLifecycle().addObserver(lifeObserver);
}
这样就可以监听activity的生命周期了 注意上面的activity 一定要继承AndroidX里面的activity否者不会存在 getLifecycle(). 具体的源码也比较简单 自己可以进入查看 fragmennt 类似 。