Activity 的生命周期用函数依次表达

生命周期

生命周期是一个对象从构建到消亡过程中的各个状态的统称。

比如 Activity 的生命周期用如下函数依次表达:

onCreate()
onStart()
onResume()
onPause()
onStop()
onDestroy()
复制代码

要观察生命周期就不得不继承 Activity 重写这些方法,想把生命周期的变化分发给其他组件就很麻烦。

于是 Jetpack 引入了 Lifecycle,以让任何组件都可方便地感知生命周期的变化:

public abstract class Lifecycle {AtomicReference<>();
    // 添加生命周期观察者
    public abstract void addObserver(LifecycleObserver observer);
    // 移除生命周期观察者
    public abstract void removeObserver(LifecycleObserver observer);
    // 获取当前生命周期状态
    public abstract State getCurrentState();
    // 生命周期事件
    public enum Event {
        ON_CREATE,
        ON_START,
        ON_RESUME,
        ON_PAUSE,
        ON_STOP,
        ON_DESTROY,
        ON_ANY;
    }
    // 生命周期状态
    public enum State {
        DESTROYED,
        INITIALIZED,
        CREATED,
        STARTED,
        RESUMED;
    }
    // 判断至少到达了某生命周期状态
    public boolean isAtLeast(State state) {
        return compareTo(state) >= 0;
    }
}
复制代码

Lifecycle 即是生命周期对应的类,提供了添加/移除生命周期观察者的方法,在其内部还定义了全部生命周期的状态及对应事件。

生命周期状态是有先后次序的,分别对应着由小到大的 int 值。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值