Lifecycle
最近更新时间 | 当前稳定版 | 下一候选版本 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2020 年 12 月 16 日 | 2.2.0 | 2.3.0-rc01 | - | - |
声明依赖项
如需添加 Lifecycle 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。
在应用或模块的 build.gradle
文件中添加所需工件的依赖项:
Kotlin
dependencies { def lifecycle_version = "2.3.0" def arch_version = "2.1.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" // LiveData implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" // Lifecycles only (without ViewModel or LiveData) implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" // Saved state module for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" // Jetpack Compose Integration for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01" // Annotation processor kapt "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-ktx:$lifecycle_version" // optional - Test helpers for LiveData testImplementation "androidx.arch.core:core-testing:$arch_version" }
Java
dependencies { def lifecycle_version = "2.3.0" def 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" }
如需详细了解依赖项,请参阅添加构建依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对库的改进有某些建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 2.3.0
版本 2.3.0-rc01
2020 年 12 月 16 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-rc01
。版本 2.3.0-rc01 中包含这些提交内容。
问题修复
- 现在,在保存状态前后,
SavedStateHandle
的keys()
方法会保持一致。除了与set()
和getLiveData()
一起使用的键外,现在还会包含先前与setSavedStateProvider()
一起使用的键。(aosp/1517919、b/174713653)
外部贡献
- 现在,用于挂起生命周期感知型协程的 API 可以更好地处理对
yield()
的调用。感谢 Nicklas Ansman Giertz!(aosp/1430830、b/168777346)
版本 2.3.0-beta01
2020 年 10 月 1 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-beta01
。版本 2.3.0-beta01 中包含这些提交内容。
API 变更
- 现在,弃用了使用 lambda 语法所需的
LiveData.observe()
Kotlin 扩展,因为改用 Kotlin 1.4 后,便不再需要此扩展。(I40d3f)
问题修复
- 升级 androidx 以使用 Kotlin 1.4(Id6471、b/165307851、b/165300826)
文档变更
- 更新了
liveData
构建器和asLiveData()
文档,添加了关于更改指定超时值的详细信息。(aosp/1122324)
版本 2.3.0-alpha07
2020 年 8 月 19 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-alpha07
。版本 2.3.0-alpha07 中包含这些提交内容。
问题修复
- 修复了
NullSafeMutableLiveData
Lint 检查中出现崩溃的问题。(aosp/1395367)
版本 2.3.0-alpha06
2020 年 7 月 22 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-alpha06
。版本 2.3.0-alpha06 中包含这些提交内容。
新功能
- 向
Lifecycle.Event
添加了downFrom(State)
、downTo(State)
、upFrom(State)
、upTo(State)
的静态辅助方法,以便在生成Event
时提供State
和过渡方向。添加了getTargetState()
方法,该方法会提供 Lifecycle 在Event
结束后将直接过渡到的State
。(I00887) - 添加了
Lifecycle.withStateAtLeast
API,这些 API 会等待某个生命周期状态,并在状态发生变化时同步运行非挂起代码块,然后继续执行结果。这些 API 与现有的when*
方法不同,因为它们不允许运行暂停代码,且不使用自定义调度程序。(aosp/1326081)
行为变更
- LifecycleRegistry 现在强制将
DESTROYED
作为终止状态。(I00887) LifecycleRegistry
现在会验证其方法是否在主线程上调用。它始终是 Activity、Fragment 等的生命周期的一项要求。非主线程上的观察者增加会导致难以在运行时捕获崩溃。对于您自己的组件拥有的LifecycleRegistry
对象,您可以通过使用LifecycleRegistry.createUnsafe(...)
明确停止检查,但您然后必需确保从其他线程访问LifecycleRegistry
时,系统会进行适当的同步(Ie7280、b/137392809)
问题修复
- 修复了
NullSafeMutableLiveData
中发生崩溃的问题。(b/159987480) - 修复了与
lifecycle-livedata-core-ktx
(特别是NullSafeMutableLiveData
)捆绑在一起的 Lint 检查的ObsoleteLintCustomCheck
。(b/158699265)
版本 2.3.0-alpha05
2020 年 6 月 24 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-alpha05
。版本 2.3.0-alpha05 中包含这些提交内容。
问题修复
LiveData
现在可以更好地处理可重入情形,避免重复调用onActive()
或onInactive()
。(b/157840298)- 修复了使用 Android Studio 4.1 Canary 6 或更高版本时 Lint 检查无法运行的问题。(aosp/1331903)
版本 2.3.0-alpha04
2020 年 6 月 10 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-alpha04
。版本 2.3.0-alpha04 中包含这些提交内容。
问题修复
- 修复了
NonNullableMutableLiveData
Lint 检查中出现崩溃的问题。(b/157294666) NonNullableMutableLiveData
Lint 检查现在涵盖了满足以下条件的更多用例:使用非 null 类型参数在MutableLiveData
上设置null
值。(b/156002218)
版本 2.3.0-alpha03
2020 年 5 月 20 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-alpha03
。版本 2.3.0-alpha03 中包含这些提交内容。
新功能
SavedStateHandle
现在允许您针对指定键调用setSavedStateProvider()
以支持延迟序列化,从而提供SavedStateProvider
,该方法会在SavedStateHandle
被要求保存其状态时获得对saveState()
的回调。(b/155106862)- 新的
ViewTreeViewModelStoreOwner.get(View)
API 允许您根据View
实例检索包含的ViewModelStoreOwner
。您必须升级到 Activity1.2.0-alpha05
、Fragment1.3.0-alpha05
和 AppCompat1.3.0-alpha01
,才能正确填充此 API。已向lifecycle-viewmodel-ktx
添加了findViewModelStoreOwner()
Kotlin 扩展。(aosp/1295522)
问题修复
- 修复了导致 Lifecycle
2.3.0-alpha01
中发布的MutableLiveData
Lint 检查无法与lifecycle-livedata-core-ktx
工件一起发布的问题。(b/155323109)
版本 2.3.0-alpha02
2020 年 4 月 29 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-alpha02
。版本 2.3.0-alpha02 中包含以下提交内容。
API 变更
SavedStateViewModelFactory
现在允许您将 nullApplication
传递给其构造函数,以更好地支持不容易获得应用且不需要支持AndroidViewModel
的情况。(aosp/1285740)
问题修复
- 通过避免在 API 级别为 28 及更低的设备上类验证失败,提高了冷启动性能。(aosp/1282118)
版本 2.3.0-alpha01
2020 年 3 月 4 日
发布了 androidx.lifecycle:lifecycle-*:2.3.0-alpha01
。版本 2.3.0-alpha01 中包含这些提交内容。
新功能
- 新的
ViewTreeLifecycleOwner.get(View)
API 允许您根据View
实例检索包含的LifecycleOwner
。您必须升级到 Activity1.2.0-alpha01
和 Fragment1.3.0-alpha01
,才能正确填充此 API。lifecycle-runtime-ktx
中提供了findViewTreeLifecycleOwner
Kotlin 扩展。(aosp/1182361、aosp/1182956) - 添加了新的 Lint 检查,可在您为 Kotlin 中定义为非 null 的
MutableLiveData
设置null
值时发出警告。此检查在使用livedata-core-ktx
或livedata-ktx
工件时可用。(aosp/1154723、aosp/1159092) - 发布了新的
lifecycle-runtime-testing
工件,该工件提供可实现LifecycleOwner
的TestLifecycleOwner
,以及线程安全的可变Lifecycle
。(aosp/1242438)
问题修复
lifecycle-runtime
工件现在拥有独一无二的软件包名称。(aosp/1187196)
版本 2.2.0
ViewModel-Savedstate 版本 2.2.0
2020 年 2 月 5 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0
。版本 2.2.0 中包含这些提交内容。
Lifecycle ViewModel SavedState 现在与其他 Lifecycle 工件共用同一版本。2.2.0
的行为与 1.0.0
的行为相同。
版本 2.2.0
2020 年 1 月 22 日
发布了 androidx.lifecycle:lifecycle-*:2.2.0
。版本 2.2.0 中包含这些提交内容。
自 2.1.0 以来的重要变更
- Lifecycle 协程集成:新的
lifecycle-runtime-ktx
工件实现了 Lifecycle 协程与 Kotlin 协程之间的集成。此外,我们还扩展了lifecycle-livedata-ktx
以便利用协程的优势。如需了解详情,请参阅将 Kotlin 协程与架构组件一起使用。 - 弃用
ViewModelProviders.of()
:已弃用ViewModelProviders.of()
。您可以将Fragment
或FragmentActivity
传递给新的ViewModelProvider(ViewModelStoreOwner)
构造函数,以便在使用 Fragment1.2.0
时实现相同的功能。 - 弃用
lifecycle-extensions
工件:在上面弃用ViewModelProviders.of()
后,此版本标志着弃用lifecycle-extensions
中的最后一个 API,因此现在该工件已完全被弃用。我们强烈建议依赖于您需要的特定 Lifecycle 工件(例如,如果您使用的是LifecycleService
,则依赖于lifecycle-service
;如果您使用的是ProcessLifecycleOwner
,则依赖于lifecycle-process
)而不是lifecycle-extensions
,因为将来不会有lifecycle-extensions
的2.3.0
版本。 - Gradle 增量注释处理器:默认情况下,Lifecycle 的注释处理器是增量注释处理器。如果您的应用是用 Java 8 编程语言编写的,您可以使用
DefautLifecycleObserver
;如果是用 Java 7 编程语言编写的,您可以使用LifecycleEventObserver
。
版本 2.2.0-rc03
2019 年 12 月 4 日
发布了 androidx.lifecycle:lifecycle-*:2.2.0-rc03
。版本 2.2.0-rc03 中包含这些提交内容。
问题修复
- 修复了在
ViewModelStore
中存储模拟ViewModel
而后以默认出厂设置查询它时出现的错误。 - 修复了在
launchWhenCreated
以及类似方法(将在相应生命周期事件中同步调用)中使用Dispatchers.Main.immediate
的问题。(aosp/1156203)
外部贡献
- 非常感谢 Anders Järleberg 为修复问题所做的贡献!(aosp/1156203)
- 感谢 Jetbrains 的 Vsevolod Tolstopyatov 审核内嵌执行的实现。
依赖项变更
- Lifecycle Extensions 现在依赖于 Fragment
1.2.0-rc03
。
版本 2.2.0-rc02
2019 年 11 月 7 日
发布了 androidx.lifecycle:lifecycle-*:2.2.0-rc02
。版本 2.2.0-rc02 中包含这些提交内容。
问题修复
- 修复了库的 proguard 设置中的错误,在目标 API 低于 29 的情况下,该错误会影响运行 API 28 以上级别的设备。(b/142778206)
版本 2.2.0-rc01
2019 年 10 月 23 日
发布了 androidx.lifecycle:lifecycle-*:2.2.0-rc01
。版本 2.2.0-rc01 中包含这些提交内容。
问题修复
- 修复了
launchWhenCreated
和相关方法由于使用Dispatchers.Main
而不使用Dispatchers.Main.immediate
导致比关联生命周期方法晚一帧运行的问题。(aosp/1145596)
外部贡献
- 非常感谢 Nicklas Ansman 为修复此问题所做出的贡献!(aosp/1145596)
版本 2.2.0-beta01
2019 年 10 月 9 日
发布了 androidx.lifecycle:lifecycle-*:2.2.0-beta01
。版本 2.2.0-beta01 中包含这些提交内容。
问题修复
- 修复了 Lifecycle 2.2.0-alpha05 中引入的
ProcessLifecycleOwner
顺序以及 Activity 的LifecycleOwner
在 Android 10 设备上迁移到启动和恢复状态的回归问题。(aosp/1128132) - 修复了 Lifecycle
2.2.0-alpha05
中引入的在使用2.0.0
或2.1.0
版lifecycle-process
时会导致NullPointerException
的回归问题。(b/141536990)
版本 2.2.0-alpha05
2019 年 9 月 18 日
发布了 androidx.lifecycle:lifecycle-*:2.2.0-alpha05
。版本 2.2.0-alpha05 中包含这些提交内容。
问题修复
- 修复了协程 LiveData 构建器中的竞态条件问题。b/140249349
版本 2.2.0-alpha04
2019 年 9 月 5 日
发布了 androidx.lifecycle:lifecycle-*:2.2.0-alpha04
。点击此处可查看此版本中包含的提交内容。
新功能
- 现在,
lifecycleScope
、whenCreated
、whenStarted
、whenResumed
、viewModelScope
以及liveData
的底层实现均使用Dispatchers.Main.immediate
而不是Dispatchers.Main
。(b/139740492)
外部贡献
- 非常感谢 Nicklas Ansman 为迁移到
Dispatchers.Main.immediate
所做出的贡献!(aosp/1106073)
版本 2.2.0-alpha03
2019 年 8 月 7 日
发布了 androidx.lifecycle:lifecycle-*:2.2.0-alpha03
。点击此处可查看此版本中包含的提交内容。
新功能
- 现在,
ViewModelStoreOwner
的实现可以选择性地实现HasDefaultViewModelProviderFactory
,从而提供默认的ViewModelProvider.Factory
。这一过程已针对 Activity1.1.0-alpha02
、Fragment1.2.0-alpha02
和 Navigation2.2.0-alpha01
实施。(aosp/1092370、b/135716331)
API 变更
- 弃用了
ViewModelProviders.of()
。您可以将Fragment
或FragmentActivity
传递给新的ViewModelProvider(ViewModelStoreOwner)
构造函数,以实现相同的功能。(aosp/1009889)
版本 2.2.0-alpha02
2019 年 7 月 2 日
发布了 androidx.lifecycle:*:2.2.0-alpha02
。点击此处可查看此版本中包含的提交内容。
API 变更
- 已将
LiveDataScope.initialValue
替换为LiveDataScope.latestValue
,后者将跟踪liveData
块当前发出的值。 - 已将新的过载添加到
liveData
生成工具,以接收Duration
参数作为类型timeout
版本 2.2.0-alpha01
2019 年 5 月 7 日
发布了 androidx.lifecycle:*:2.2.0-alpha01
。点击此处可查看此版本中包含的提交内容。
新功能
- 此版本新增了几项功能,增加了对 Lifecycle 和 LiveData 的 Kotlin 协程的支持。点击此处可查看相关的详细文档。
ViewModel-SavedState 版本 1.0.0
版本 1.0.0
2020 年 1 月 22 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0
。版本 1.0.0 中包含这些提交内容。
1.0.0 中的重要功能
- 新增了 SavedStateHandle 类。它使您的
ViewModel
类能够访问和促成已保存状态。您可以在ViewModel
类的构造函数以及 Fragment 默认提供的工厂中接收此对象,并且 AppCompatActivity 会自动注入SavedStateHandle
。 - 添加了 AbstractSavedStateViewModelFactory。它允许您为
ViewModel
创建自定义工厂,并向其提供SavedStateHandle
访问权限。
ViewModel-Savedstate 版本 1.0.0-rc03
2019 年 12 月 4 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03
。版本 1.0.0-rc03 中包含这些提交内容。
依赖项变更
- Lifecycle ViewModel SavedState 现在依赖于 Lifecycle
2.2.0-rc03
。
Viewmodel-Savedstate 版本 1.0.0-rc02
2019 年 11 月 7 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02
。版本 1.0.0-rc02 中包含这些提交内容。
依赖项变更
- 现在依赖于 Lifecycle
2.2.0-rc02
。
ViewModel-SavedState 版本 1.0.0-rc01
2019 年 10 月 23 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01
,该版本与 1.0.0-beta01
相比没有变化。版本 1.0.0-rc01 中包含这些提交内容。
ViewModel-Savedstate 版本 1.0.0-beta01
2019 年 10 月 9 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01
。版本 1.0.0-beta01 中包含这些提交内容。
问题修复
- 修复了在
Activity.onActivityResult()
中首次访问 SavedState ViewModel 将导致IllegalStateException
的问题。(b/139093676) - 修复了使用
AbstractSavedStateViewModelFactory
时的IllegalStateException
。(b/141225984)
ViewModel-SavedState 版本 1.0.0-alpha05
2019 年 9 月 18 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05
。版本 1.0.0-alpha05 中包含这些提交内容。
API 变更
SavedStateViewModelFactory
不再扩展AbstractSavedStateViewModelFactory
,且SavedStateHandle
仅为请求拥有它的 ViewModel 而创建 (aosp/1113593)
ViewModel-SavedState 版本 1.0.0-alpha03
2019 年 8 月 7 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03
。点击此处可查看此版本中包含的提交内容。
重大变更
lifecycle-viewmodel-savedstate
不再依赖于fragment
,移除了相关的SavedStateViewModelFactory(Fragment)
和SavedStateViewModelFactory(FragmentActivity)
构造函数。现在,SavedStateViewModelFactory
是 Activity1.1.0-alpha02
、Fragment1.2.0-alpha02
和 Navigation2.2.0-alpha01
的默认出厂设置。(b/135716331)
ViewModel-SavedState 版本 1.0.0-alpha02
2019 年 7 月 2 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02
。点击此处可查看此版本中包含的提交内容。
新功能
- 添加了可接受默认值的
SavedStateHandle.getLiveData()
过载。
API 变更
- 已将
SavedStateVMFactory
重命名为SavedStateViewModelFactory
。 - 已将
AbstractSavedStateVMFactory
重命名为AbstractSavedStateViewModelFactory
。
ViewModel-Savedstate 版本 1.0.0-alpha01
2019 年 3 月 13 日
发布了 androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01
。点击此处可查看此初始版本的完整提交内容日志。
新功能
- 现在,
ViewModels
可为 savedstate 做出贡献。为此,您可以使用新引入的 ViewModel 的出厂SavedStateVMFactory
,并且 ViewModel 应该具有一个可接收SavedStateHandle
对象作为参数的构造函数。
版本 2.1.0
自 2.0.0 以来的重要变更
- 添加了
LifecycleEventObserver
,用于应对需要生命周期事件流的情况。它是一个公共 API,而不是隐藏的GenericLifecycleObserver
类。 - 为
LiveData.observe
方法和Transformations.*
方法添加了 ktx 扩展程序。 - 添加了
Transformations.distinctUntilChanged
,它可以创建一个新的 LiveData 对象,该对象会在源LiveData
值发生更改后发出一个值。 - 通过添加扩展属性
ViewModel.viewModelScope
在 ViewModel 中添加了协程支持。
版本 2.1.0
2019 年 9 月 5 日
发布了 androidx.lifecycle:lifecycle-*:2.1.0
。点击此处可查看此版本中包含的提交内容。
版本 2.1.0-rc01
2019 年 7 月 2 日
发布了 androidx.lifecycle:*:2.1.0-rc01
,该版本与 androidx.lifecycle:*:2.1.0-beta01
相比没有变化。点击此处可查看此版本中包含的提交内容。
版本 2.1.0-beta01
2019 年 5 月 7 日
发布了 androidx.lifecycle:*:2.1.0-beta01
。点击此处可查看此版本中包含的提交内容。
新功能
- Lifecycle 已升级为测试版:在以前的 Alpha 版中引入的 API(例如用于转换和观察的
liveData
扩展函数以及使用属性委托的ViewModel
初始化等)已达到稳定状态,不会发生变化。
版本 2.1.0-alpha04
2019 年 4 月 3 日
发布了 androidx.lifecycle:*:2.1.0-alpha04
。点击此处可查看此版本中包含的提交内容。
API 变更
- 重大变更:
by viewModels()
和by activityViewModels()
后的底层 API 已进行了更改,以直接支持ViewModelStore
,而不是仅支持ViewModelStoreOwner
。(aosp/932932)
版本 2.1.0-alpha03
2019 年 3 月 13 日
发布了 androidx.lifecycle:*:2.1.0-alpha03
。点击此处可查看此版本中包含的完整提交内容列表。
API 变更
- 已移除
ViewModelProvider.KeyedFactory
。除了ViewModelProvider.Factory
之外,第二个接口也会因by viewmodels {}
Kotlin 属性委托而无法与新功能完美搭配使用。(aosp/914133)
版本 2.1.0-alpha02
2019 年 1 月 30 日
发布了 androidx.lifecycle 2.1.0-alpha02
。
API 变更
LifecycleRegistry
现在包含setCurrentState()
方法,用于替换现已弃用的setState()
方法。(aosp/880715)
问题修复
- 修复了在包含的
ViewModelStore
被清除时模拟ViewModel
实例发生崩溃的问题。b/122273087
版本 2.1.0-alpha01
2018 年 12 月 17 日
发布了 androidx.lifecycle 2.1.0-alpha01
。
新功能
- 添加了
LifecycleEventObserver
,用于应对需要生命周期事件流的情况。它是一个公共 API,而不是隐藏的GenericLifecycleObserver
类。 - 为
LiveData.observe
方法和Transformations.*
方法添加了 ktx 扩展程序。 - 添加了
Transformations.distinctUntilChanged
方法。它可以创建一个新的LiveData
对象,该对象会在源 LiveData 值发生更改后发出一个值。 - 在 ViewModel 中添加了协程支持:添加了
ViewModel.viewModelScope
扩展属性。 - 添加了
ViewModelProvider.KeyedFactory
,它是 ViewModel 的出厂设置,可接收create
方法中的key
和Class
。
版本 2.0.0
版本 2.0.0
2018 年 9 月 21 日
发布了 Lifecycle 2.0.0
,与 2.0.0-rc01
相比,该版本修复了 ViewModel 中的一个问题。
问题修复
- 修复了错误地移除了构造函数的 ViewModel ProGuard 规则 b/112230489
版本 2.0.0-beta01
2018 年 7 月 2 日
问题修复
- 修复了 LifecycleObserver ProGuard 规则以仅保留实现而不保留子接口 b/71389427
- 修复了 ViewModel ProGuard 规则以允许混淆和压缩
AndroidX 之前的版本
对于 AndroidX 之前的 Lifecycle 版本,请添加以下依赖项:
dependencies {
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
// alternatively - just ViewModel
implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" // For Kotlin use viewmodel-ktx
// alternatively - just LiveData
implementation "android.arch.lifecycle:livedata:$lifecycle_version"
// alternatively - Lifecycles only (no ViewModel or LiveData).
// Support library depends on this lightweight import
implementation "android.arch.lifecycle:runtime:$lifecycle_version"
annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // For Kotlin use kapt instead of annotationProcessor
// alternately - if using Java8, use the following instead of compiler
implementation "android.arch.lifecycle:common-java8:$lifecycle_version"
// optional - ReactiveStreams support for LiveData
implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version"
// optional - Test helpers for LiveData
testImplementation "android.arch.core:core-testing:$lifecycle_version"
}
版本 1.1.1
2018 年 3 月 21 日
只有一项小的变更:android.arch.core.util.Function
已从 arch:runtime
移至 arch:common
。这样,便可以在没有运行时依赖项的情况下使用它,例如在下面的 paging:common
中。
lifecycle:common
是 lifecycle:runtime
的依赖项,所以此变更不会直接影响 lifecycle:runtime
,而只会影响像 Paging 一样直接依赖于 lifecycle:common
的模块。
版本 1.1.0
2018 年 1 月 22 日
打包变更
现在可使用小得多的新增依赖项:
android.arch.lifecycle:livedata:1.1.0
android.arch.lifecycle:viewmodel:1.1.0
API 变更
- 已弃用的
LifecycleActivity
和LifecycleFragment
现已移除 - 请使用FragmentActivity
、AppCompatActivity
或支持Fragment
。 - 向
ViewModelProviders
和ViewModelStores
添加了@NonNull
注释 - 弃用了
ViewModelProviders
构造函数 - 请直接使用其静态方法 - 弃用了
ViewModelProviders.DefaultFactory
- 请使用ViewModelProvider.AndroidViewModelFactory
- 添加了静态
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)
方法,用于检索适合创建ViewModel
和AndroidViewModel
实例的静态Factory
。