生命周期监听组件使用
MainActivity
public class MainActivity extends AppCompatActivity implements LifecycleOwner {
private LifecycleRegistry lifecycleRegistry;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getLifecycle().addObserver(new CameraComponent());
setContentView(R.layout.activity_main);
Log.e("生命周期","onCreate==========");
lifecycleRegistry=new LifecycleRegistry(this); // 注册 Lifecycle
lifecycleRegistry.markState(Lifecycle.State.CREATED); // 标记Lifecycle
}
@NonNull
public LifecycleRegistry getLifecycleRegistry() {
return lifecycleRegistry;
}
}
被监听得Activity需要继承 LifecycleOwner
LifecycleOwner
是单一方法接口,表示类具有 Lifecycle
。它具有一种方法(即 getLifecycle()
),该方法必须由类实现。
JianTingComponent
public class JianTingComponentimplements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void initializeCamera() {
Log.e("生命周期监听","监听到ON_CREATE=================");
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void initializeCamera2() {
Log.e("生命周期监听","监听到ON_START=================");
}
}
实现 LifecycleObserver
的组件可与实现 LifecycleOwner
的组件无缝协同工作,因为所有者可以提供生命周期,而观察者可以注册以观察生命周期。