在应用或模块的
build.gradle
文件中添加所需工件的依赖项:
lifecycle-extensions
中的 API 已弃用。您可以为特定 Lifecycle 工件添加所需的
依赖项
。
Kotlin
dependencies {
val lifecycle_version = "2.3.1"
val arch_version = "2.1.0"
// ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version")
// LiveData
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version")
// 仅Lifecycles (没有 ViewModel 或 LiveData)
implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version")
// 为 ViewModel 保存状态模块
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version")
// Annotation processor(注释处理器)
kapt("androidx.lifecycle:lifecycle-compiler:$lifecycle_version")
// 或者 - 如果使用 Java8,请使用以下代码代替生命周期编译器
implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version")
// 可选 - 在服务中实现 LifecycleOwner 的助手
implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version")
// 可选 - ProcessLifecycleOwner 为整个应用程序进程提供生命周期
implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version")
// 可选 - 对 LiveData 的 ReactiveStreams 支持
implementation("androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version")
// 可选 - LiveData 的测试助手
testImplementation("androidx.arch.core:core-testing:$arch_version")
dependencies {
val lifecycle_version = "2.3.1"
val arch_version = "2.1.0"
// ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version")
// LiveData
implementation("androidx.lifecycle:lifecycle-livedata:$lifecycle_version")
// Lifecycles only (without ViewModel or LiveData)
implementation("androidx.lifecycle:lifecycle-runtime:$lifecycle_version")
// Saved state module for ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version")
// Annotation processor
annotationProcessor("androidx.lifecycle:lifecycle-compiler:$lifecycle_version")
// alternately - if using Java8, use the following instead of lifecycle-compiler
implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version")
// optional - helpers for implementing LifecycleOwner in a Service
implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version")
// optional - ProcessLifecycleOwner provides a lifecycle for the whole application process
implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version")
// optional - ReactiveStreams support for LiveData
implementation("androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version")
// optional - Test helpers for LiveData
testImplementation("androidx.arch.core:core-testing:$arch_version")
在应用或模块的build.gradle文件中添加所需工件的依赖项:lifecycle-extensions中的 API 已弃用。您可以为特定 Lifecycle 工件添加所需的依赖项。Kotlin dependencies { val lifecycle_version = "2.3.1" val arch_version = "2.1.0" // ViewModel implementation("androi...
0x1、Lifecycle简介
本节继续学穿Jetpack,带来第二个组件 Lifecycle,用于帮助开发者管理Activity、Fragment的生命周期,它可是LiveData、ViewModel等组件的基石。
日常开发中经常会遇到这些问题:
需要在Activity、Fragment的生命周期回调中执行特定操作,否则会引起 程序错误 或 内存泄露,比如:无限循环的属性动画忘记在onDestory中取消,Eventbus忘记在onDestory中unregister等。不要想着自己小心注意就好,在多
LifecycleOwner 是单一方法接口,表示类具有 Lifecycle。它具有一种方法(即 getLifecycle()),该方法必须由类实现。 此接口从各个类(如 Fragment 和 AppCompatActivity)抽象化 Lifecycle 的所有权,并允许编写与这些类搭配使用的组件。任何自定义应用类均可实现 LifecycleOwner 接口。
实现 DefaultLifecycleObserver 的组件可与实现 LifecycleOwner 的组件完美配合,因为所有者可以提供生命周期
一、Lifecycle 介绍
Lifecycle是一个生命周期感知组件,一般用来响应Activity、Fragment等组件的生命周期变化,并将变化通知到已注册的观察者。有助于更好地组织代码,让代码逻辑符合生命周期规范,减少内存泄漏,增强稳定性。
这些组件可帮助您生成更易于组织且通常更轻量级的代码,这些代码更易于维护。
二、使用方法
先来看一下如何使用,这样再去分析源码就能有的放矢,
1.添加依赖...
在过去的谷歌IO大会上,Google官方向我们推出了Android Architecture Components,其中谈到Android组件处理生命周期的问题,向我们介绍了Handling Lifecycles。
同时,如何利用android.arch.lifecycle包提供的类来控制数据、监听器等的 lifecycle。同时,LiveData与ViewModel的 lifecycle 也依赖于Lifecycle框架。
二、Lifecycle简介&基础使用
文章目录一、前言二、
添加依赖三、核心类结构理解四、简单示例五、自定义
LifecycleOwner六、
LifecycleEventObserver七、
Lifecycle的部分方法八、参考链接
Jetpack中有一个
LifeCycle,主要用于对Activity和Fragment的生命周期做一个解耦分离。虽然用法简单,但却是JetPack不可缺少的一环。这里不在对为什么使用
LifeCycle和使用
LifeCycle的优点进行解释(这里官方文档有详细解释),仅记录
LifeCycle的使用方式。
什么是Lifecycle?
LifeCycle是GoogleApp架构中推荐的一个组件。Lifecycles 包含有关Activity与Fragment生命周期状态的信息,并允许其他对象观察此状态。
Lifecycle组件包括LifecycleOwner、LifecycleObserver。
简单的说就是用来监听Activity与Fragment的生命周期变化,在变化时能及时通知其他组件。
为什么要引进Lifecycle?
前面说了,Lifecycle能够让开发者构建能感知其他组件(主要指Acti
lifecycle 依赖
//androidx版本 lifecycle
implementation group: 'androidx.lifecycle', name: 'lifecycle-runtime', version: '2.0.0'
implementation group: 'androidx.lifecycle', name: 'lifecycle-common', versio...
Lifecycle是Google推出的用于处理Activity和Fragment的生命周期相关问题的组件,是一种观察者模式的结构。
使用
lifeCycle能够在生命周期的拥有者和观察者之间建立一种监听关系,当拥有者的生命周期发生变化时观察者能够及时监听到并作出对应的处理,同时观察者能够非常方便的判断当前拥有者的生命周期是什么。
从上面的描述上看,显然
LifeCycle的使用场景是和Activity和Fragment的生命周期相关的业务逻辑。
举例来说,在MVP结构中,Presenter需要感知到Act
一、Lifecycle 介绍
Lifecycle是一个生命周期感知组件,一般用来响应Activity、Fragment等组件的生命周期变化,并将变化通知到已注册的观察者。有助于更好地组织代码,让代码逻辑符合生命周期规范,减少内存泄漏,增强稳定性。
这些组件可帮助您生成更易于组织且通常更轻量级的代码,这些代码更易于维护。
二、使用方法
先来看一下如何使用,这样再去分析源码就能有的放矢
1.添加依赖:
在app或者module目录下的build.gradle中,添加依赖:
这里介绍Androidx 项目引入li
好像新版本的基本库中已经包含了LifeCycle库,故此我们不需要在builder.gradle中添加依赖导入
此篇文章主要讲解的是LifeCycle的使用而不是ViewModel和LiveData,后两者是LifeCycle库中的一部分,但是具体实现得分步讲解。
我个人理解是LiveData和ViewModel都是基于LifeCycle实现的,LifeCycle的具体任务是为后两者提供生命周期监...
Architecture Components
lifecycle 是 2107 年 google 大会推出来的,它属于 architecture compoment 里面的一个组件,它可以干什么用呢? 简单得来说,它可以用来检查 Activity 的生命周期,而不必强依赖 Activity。
为什么要引进 lifecycle
举一下...