Lifecycle 解析,成功入职阿里月薪45K

@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun disconnect() {
Log.e(TAG, “disconnect”)
}

companion object {
private const val TAG = “lifecycle_observer_demo”
}
}

// 将 Lifecycle 对象和 LifecycleObserver 对象进行绑定
LifecycleOwner.getLifecycle().addObserver(MyLifecycleObserver())

关联接口

LifecycleOwner

// LifecycleOwner.java
// 具有Android生命周期的类。自定义组件可以使用这些事件来处理生命周期更改,而无需在Activity或Fragment中实现任何代码。
@SuppressWarnings({“WeakerAccess”, “unused”})
public interface LifecycleOwner {

@NonNull
Lifecycle getLifecycle();
}

LifecycleObserver

// LifecycleObserver.java
// 将一个类标记为LifecycleObserver。它没有任何方法,而是依赖于{@link OnLifecycleEvent}注解方法。
@SuppressWarnings(“WeakerAccess”)
public interface LifecycleObserver {

}

LifecycleEventObserver

LifecycleEventObserver 可以获取哪个生命周期事件发生了变化

  • 如果同时使用了 DefaultLifecycleObserver,会优先调用 DefaultLifecycleObserver 的对应方法;
  • 如果同时使用了 OnLifecycleEvent 注解,将会忽略注解;

// LifecycleEventObserver.java
public interface LifecycleEventObserver extends LifecycleObserver {

void onStateChanged(@NonNull LifecycleOwner source, @NonNull Lifecycle.Event event);
}

FullLifecycleObserver

注意: 该修饰符为缺省访问修饰符

// FullLifecycleObserver.java
interface FullLifecycleObserver extends LifecycleObserver {

void onCreate(LifecycleOwner owner);

void onStart(LifecycleOwner owner);

void onResume(LifecycleOwner owner);

void onPause(LifecycleOwner owner);

void onStop(LifecycleOwner owner);

void onDestroy(LifecycleOwner owner);
}

DefaultLifecycleObserver

DefaultLifecycleObserver 存在于 androidx.lifecycle:lifecycle-common-java8:xxx 这个依赖库内;

  • 相比于注解的形式,官方推荐使用此方式来监听生命周期;
  • 如果同时使用了 LifecycleEventObserver,会先调用 DefaultLifecycleObserver 的对应方法;
  • 如果同时使用了 OnLifecycleEvent 注解,将会忽略注解;

// DefaultLifecycleObserver.java
@SuppressWarnings(“unused”)
public interface DefaultLifecycleObserver extends FullLifecycleObserver {

// LifecycleOwner 的 onCreate 方法之后调用
@Override
default void onCreate(@NonNull LifecycleOwner owner) {
}

// LifecycleOwner 的 onStart 方法之后调用
@Override
default void onStart(@NonNull LifecycleOwner owner) {
}

// LifecycleOwner 的 onResume 方法之后调用
@Override
default void onResume(@NonNull LifecycleOwner owner) {
}

// LifecycleOwner 的 onPause 方法之前调用
@Override
default void onPause(@NonNull LifecycleOwner owner) {
}

// LifecycleOwner 的 onStop 方法之前调用
@

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值