Android——Lifecycles的学习-创新互联

目录
  • 简介
  • 使用
    • 创建观察者
    • 注册观察者

创新互联建站成立于2013年,我们提供高端成都网站建设公司网站制作成都网站设计公司、网站定制、营销型网站小程序开发、微信公众号开发、营销推广服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为宴会酒店设计企业提供源源不断的流量和订单咨询。简介

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());

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:Android——Lifecycles的学习-创新互联
网站URL:http://scyanting.com/article/dgjjed.html