一、Lifecycle简介
androidx.lifecycle 生命周期感知行组件可执行操作来响应另一个组件(如activity、fragment、service、application)的生命周期状态的变化。
二、Lifecycle使用
Jetpack为我们提供了2个接口:
被观察者:LifecycleOwner
观察者: LifecycleObserver
被监听的系统组件需要实现LifecycleOwner接口,观察者需要实现LifecycelObserver接口。
1.添加依赖
implementation 'androidx.appcompat:appcompat:1.2.0'
androidx.ComponetActivity已经实现了LifecycleOwner接口。
2.实现观察者
public class LifecycleObserverImp implements LifecycleObserver {
private static final String TAG = "LifecycleObserverImp";
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
private void onCreate() {
Log.d(TAG, "onCreate: ");
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
private void onStart() {
Log.d(TAG, "onCreate: ");
}
}
3.在activity中绑定监听
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getLifecycle().addObserver(new LifecycleObserverImp());
}
}
三、总结
Lifecycle组件主要是帮助解耦,自定义的组件也能接收到生命周期的变化。