Android——Lifecycles的学习

简介

lifecycle 是属于Android Jetpack(官方开发工具包)—— Architecture(架构组件)中的一员。构建生命周期感知型组件,这些组件可以根据 Activity 或 Fragment 的当前生命周期状态调整行为
通俗来讲就是,lifecycle可以和Activity或Fragment生命周期绑定,方便我们做一些跟生命周期相关的业务逻辑。

  1. 应用场景
  • 控制视频缓冲的开始与停止:启动App的时候可以更快的开始缓冲视频,App销毁时停止缓冲。
    
  • 开始和停止网络连接:应用位于前台时可能需要实时传输数据,并在应用进入后台时自动暂停。
    
  • 控制页面动画的启动与停止:动画在页面可见时进行播放,不可见时停止。
    

使用

分为两步(被观察者已经被Android源码实现了:

  • 创建观察者
  • 注册观察者

创建观察者

  1. 创建类实现LifecycleObserver接口
  2. 在其内部创建方法(方法名随意),参数可填LifecycleOwner,也可不填。
  3. 给方法加注解 @OnLifecycleEvent(Lifecycle.Event.XXX) ,可以让该方法监听到注解生命周期的变化。
//实现Lifecycles的接口
public class MyObsever implements LifecycleObserver {
    private static final String TAG = "TestLifecycleObserver";

    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
        // 2、在其内部创建方法(方法名随意),参数可填LifecycleOwner,也可不填。
    void onCreate(LifecycleOwner owner) {
        Log.e(TAG, "========onCreate====" + owner);
    }

    // 3、给方法加注解 @OnLifecycleEvent(Lifecycle.Event.XXX)
    // 可以让该方法监听到注解生命周期的变化。
    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    void onStart() {
        Log.e(TAG, "========onStart");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    void onResume(LifecycleOwner owner) {
        Log.e(TAG, "========onResume");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    void onPause(LifecycleOwner owner) {
        Log.e(TAG, "========onPause");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    void onStop(LifecycleOwner owner) {
        Log.e(TAG, "========onStop");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    void onDestroy(LifecycleOwner owner) {
        Log.e(TAG, "========onDestroy");
    }

    // Lifecycle.Event.ON_ANY 可以监听所有生命周期变化
    @OnLifecycleEvent(Lifecycle.Event.ON_ANY)
    void onAny(LifecycleOwner owner) {
        Log.e(TAG, "========onAny");
    }
}

注册观察者

AppCompatActivity与Fragment是默认的被观察者,在其内部通过调用getLifecycle().addObserver(观察者)注册定义好的观察者即可。

只要你的Activity是继承自AppCompatActivity的,或者你的Fragment是继承自androidk
fragment.app. Fragment
的,那么它们本身就是一个LifecycleOwner的实例,这部分工作已
由AndroidX库自动帮我们完成了。

我们只需要在所要监听的活动或者碎片添加如下代码即可。

//实现注册观察者
getLifecycle().addObserver(new MyObsever());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liquor...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值