Lifecycle 使用
在 上篇文章 Lifecycle(一) 起源中已经通过一个例子让大家简单的认识到:
将依赖于生命周期的代码直接写在Activity 或 Fragment 会导致代码条理性很差并且会扩散错误。
通过Lifecycle可以将依赖组件的代码从生命周期方法移入组件本身中。
也就是说,组件内部可以感知到Activity 或者 Fragment的生命周期
这篇文章具体展开说一下Lifecycle 的用法
预备知识
Lifecycle 中的事件和状态
Lifecycle 通过两个枚举类型:Event 和 State 来 对应 Android 视图组件的生命周期:
// 事件
public enum Event {
ON_CREATE,
ON_START,
ON_RESUME,
ON_PAUSE,
ON_STOP,
ON_DESTROY,
ON_ANY
}
//状态
/**
* Lifecycle states. You can consider the states as the nodes in a graph and
* {@link Event}s as the edges between these nodes.
*/
public enum State {
DESTROYED,
INITIALIZED,
CREATED,
STARTED,
RESUMED;
public boolean isAtLeast(@NonNull State state) {
return compareTo(state) >= 0;
}
}
官方注释告诉我们
<你可以将 States 想成一张图中的点,将 Event 想成是图中连接这些点的边。