生命周期组件LifeCycle

我们知道Activity有着自己的生命周期,在不同的阶段有着不同的回调函数,比如onCreate、onResume等等。这些回调是非常常用的,因为你时常要利用它们完成一些事情,比如你如果用EventBus的话,可能需要分别在onCreate和onDestroy中注册和取消监听器。类似这样的操作多了去了,需要一个方便的工具来做这些操作,那就是LifeCycle组件

LifeCycle类把生命周期给抽象了出来,包含了不同的状态和事件,事件一来,状态就变,参考下图:

LifeCycle可以表达Activity和Fragment的生命周期,那怎么获取LifeCycle对象呢?Activity和Fragment都实现了LifecycleOwner接口,这个接口提供了getLifecycle()方法,调用这个方法就能获取到Activity和Fragment对应的LifeCycle了。之后就可以像下面这样添加生命周期监听器了:

public class MyObserver implements LifecycleObserver {
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    public void connectListener() {
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    public void disconnectListener() {
    }
}

myLifecycleOwner.getLifecycle().addObserver(new MyObserver());

LifecycleObserver这个接口没有方法,你可以随便加个方法,然后加上注解@OnLifecycleEvent 以表示这个方法相应哪个事件。上面代码中的connectListener方法就会在ON_RESUME事件发生的时候执行,如果是在Activity里,那connectListener就会在onResume方法里执行。

好了LifeCycle主要内容就这么点,虽然他是一个单独的模块儿,你可以单独使用LifeCycle,但是通常情况下它需要和LiveData和ViewModel配合使用。单独使用的话在build.gradle中添加以下依赖(版本号视情况而定):

查看更多依赖设置请点击这里

关于 “生命周期组件LifeCycle” 的 6 个意见

发表评论

电子邮件地址不会被公开。