Jetpack学习01 Lifecycle的使用及其运行原理

一. LifeCycle库的使用
1. 使用场景
监听LifecycleOwner控件(一般为Activity, Fragment等)的生命周期的状态迁移
2. 项目中配置
https://developer.android.google.cn/jetpack/androidx/releases/lifecycle
3. 新建一个LifeCycleObsever的子类。对于在被监听的LifecycleOwner控件的生命周期方法中实现的自己的api,添加注解@OnLifecycleEvent(Lifecycle.Event.ON_CREATE).例如此注解表示在监听LifecycleOwner控件发出的Event.ON_CREATE事件。
4. 在LifecycleOwner控件中,注册LifeCycleObsever
getLifecycle().addObserver(LifeCycleObsever);

二. LifeCycle的实现原理
(一)初始化阶段: 将observer和其状态封装在一起
1. 在LifecycleOwner控件中,注册LifeCycleObsever时,getLifecycle().addObserver(LifeCycleObsever)中,在LifeycleRegistry.java 中,将Observer对象和其初始状态INITIALIZED封装在ObserverWithState对象中
2. ObserverWithState中
2.1 将Observer封装成 ReflectiveGenericLifecycleObserver对象
3. ReflectiveGenericLifecycleObserver中
3.1 ClassesInfoCache.Sinstance.getInfo(Observer对象.class),实质是在ClassesInfoCache中,根据Observer对象的类名,找到其所有的方法,找到其中带有OnLifecycleEvent.class注解的方法,获取其参数数量,将该方法与其参数数量封装在MethodReference类中,然后再讲该类和其对应的注解携带的Event封装在一起,然后封装成CallbackInfo对象中。

(二)根据observer其绑定的状态获取对应的Event事件,然后根据Event事件获取下一个state,通知对应的ReflectiveGenericLifecycleObserver执行onStateChanged()方法

(三)此时会调用CallbackInfo.invokeCallbacks(owner, Event, Observer),实际是调用的ClassesInfoCache.invokeCallbacks(),最终会根据MethodReference中的Method和其参数个数,反射调用该method.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 第 1 章概 述 .............................................................................1-1 1.1 文档概述.......................................................................1-1 第 2 章 环境规划与设置..............................................................2-1 2.1 概述 .............................................................................2-1 2.2 网络规划与设置.............................................................2-1 2.2.1 网络规划 .............................................................2-1 2.2.2 网络设置 .............................................................2-2 2.3 配置共享存储 ................................................................2-5 2.3.1 磁盘阵列划分 ......................................................2-5 2.3.2 共享磁盘划分 本地共享硬盘............................2-6 2.4 安装与设置数据库应用程序...........................................2-7 第 3 章安装 LifeKeeper..............................................................3-1 3.1 安装LifeKeeper Installation Support CD ........................3-1 3.1.1 Support CD 介绍.................................................3-2 3.1.2 Support CD 安装.................................................3-2 3.2 安装 LifeKeeper 核心软件包...........................................3-3 3.2.1 LifeKeeper 核心软件包清单..................................3-3 3.2.2 安装 LifeKeeper 核心软件包.................................3-4 3.3 安装 LifeKeeper Recovery Kits......................................3-4 3.3.1 安装数据复制软件包 ............................................3-4 3.3.2 安装数据库恢复软件包.........................................3-5 3.4 文件修改......................................................................3-6 3.4.1 启动配置文件修改................................................3-6 3.4.2 检测信息配置文件修改.........................................3-7 3.5 验证 LifeKeeper 的安装.................................................3-8 3.6 启动 LifeKeeper............................................................3-8 3.6.1 启动 LifeKeeper 服务器进程...............................3-9 3.7 有关的 LifeKeeper 管理任务.......................................3-10 3.7.1 停止 LifeKeeper 服务器进程...............................3-10 3.7.2 查看 LifeKeeper 进程.........................................3-11 3.7.3 删除 LifeKeeper 软件.........................................3-12 3.7.4 使用 kpackage 删除 LifeKeeper 软件..................3-13 3.7.5 使用命令行删除 LifeKeeper 软件.....................3-13 第 4 章配置 LifeKeeper..............................................................4-1 4.1 启动配置台 ...................................................................4-1 4.2 建立连接.......................................................................4-2 4.3 建立通信路径 ................................................................4-4 4.4 建立资源.....................................................................4-14 4.4.1 建立 IP 资源......................................................4-14 4.4.2 建立数据复制资源 DR 无磁盘阵列时用.......4-38 4.4.3 建立文件系统资源 有磁盘阵列时用................4-42 4.4.4 建立 Oracle 保护资源.........................................4-42 4.4.5 建立 CAMS 应用保护资源..................................4-42 4.4.6 建立资源依赖关系..............................................4-42 4.5 设置正常关机切换 .......................................................4-42 4.6 设置资源回切 ..............................................................4-42 第 5 章检测 LifeKeeper 配置.....................................................5-42 5.1 检测 LifeKeeper 配置正确性.........................................5-42 5.1.1 手工切换服务 ....................................................5-42 5.1.2 关机切换服务 ....................................................5-42

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值