Activity
| 最新更新 | 稳定版 | 候选版本 | Beta 版 | Alpha 版 |
|---|---|---|---|---|
| 2025 年 6 月 4 日 | 1.10.1 | 1.11.0-rc01 | - | 1.12.0-alpha02 |
声明依赖项
要添加对 Activity 的依赖项,您必须将 Google Maven 代码库添加到您的项目中。请阅读Google 的 Maven 代码库以了解详情。
在应用或模块的 build.gradle 文件中添加所需工件的依赖项
Groovy
dependencies { def activity_version = "1.10.1" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.10.1" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮为现有问题投票。
有关更多信息,请参阅问题跟踪器文档。
版本 1.12
版本 1.12.0-alpha02
2025 年 6 月 4 日
androidx.activity:activity:1.12.0-alpha02、androidx.activity:activity-compose:1.12.0-alpha02 和 androidx.activity:activity-ktx:1.12.0-alpha02 已发布。版本 1.12.0-alpha02 包含这些提交。
Bug 修复
- 来自NavigationEvent
1.0.0-alpha02:修复了由于同时修改内部可关闭列表而在调用NavigationEventCallback.remove()时可能发生的ConcurrentModificationException。(I63066)
版本 1.12.0-alpha01
2025 年 5 月 20 日
androidx.activity:activity:1.12.0-alpha01、androidx.activity:activity-compose:1.12.0-alpha01 和 androidx.activity:activity-ktx:1.12.0-alpha01 已发布。版本 1.12.0-alpha01 包含这些提交。
新功能
ComponentActivity和ComponentDialog已通过NavigationEventDispatcherOwnerAPI 集成到NavigationEvent1.0.0-alpha01。您现在可以通过navigationEventDispatcher字段从ComponentActivity中检索NavigationEventDispatcher。由于OnBackPressedDispatcher已在新库的基础上重写,因此所有以前的用法都应继续正常工作。今后您应使用NavigationEventDispatcher和NavigationEventCallback。(Ib8eed、I6cc44、Ib7724、I9a0f7、b/412597031、b/415028038、b/412596729、b/412597140、b/412596012)
版本 1.11
版本 1.11.0-rc01
2025 年 4 月 23 日
androidx.activity:activity:1.11.0-rc01、androidx.activity:activity-compose:1.11.0-rc01 和 androidx.activity:activity-ktx:1.11.0-rc01 已发布。版本 1.11.0-rc01 包含这些提交。
版本 1.11.0-beta01
2025 年 4 月 9 日
androidx.activity:activity:1.11.0-beta01、androidx.activity:activity-compose:1.11.0-beta01 和 androidx.activity:activity-ktx:1.11.0-beta01 已发布。版本 1.11.0-beta01 包含这些提交。
版本 1.11.0-alpha02
2025 年 3 月 26 日
androidx.activity:activity:1.11.0-alpha02、androidx.activity:activity-compose:1.11.0-alpha02 和 androidx.activity:activity-ktx:1.11.0-alpha02 已发布。版本 1.11.0-alpha02 包含这些提交。
API 变更
- 将 Android 16 Beta03 中的新
EDGE_NONE和frameTimeMillis集成到OnBackPressedCallback的handleOnBackStarted和handleOnBackProgressed函数提供的BackEventCompat中。
依赖项更新
- Activity 现在使用 API 36 编译。(I510e8,b/301910674)
版本 1.11.0-alpha01
2025 年 3 月 12 日
androidx.activity:activity:1.11.0-alpha01、androidx.activity:activity-compose:1.11.0-alpha01 和 androidx.activity:activity-ktx:1.11.0-alpha01 已发布。版本 1.11.0-alpha01 包含这些提交。
新功能
- 将
MediaCapabilitiesAPI 添加到PickVisualMediaRequest,以允许应用指定其媒体功能,例如支持的 HDR 类型。(Ic3ee7)
版本 1.10
版本 1.10.1
2025 年 2 月 26 日
androidx.activity:activity:1.10.1、androidx.activity:activity-compose:1.10.1 和 androidx.activity:activity-ktx:1.10.1 已发布。版本 1.10.1 包含这些提交。
Bug 修复
ViewTreeOnBackPressedDispatcherOwners和FullyDrawnReporterOwners现在可以通过视图的分离父级(例如ViewOverlay)进行解析。有关分离视图父级的更多信息,请参阅核心库的版本说明或ViewTree.setViewTreeDisjointParent中的文档。(Ie7750)
版本 1.10.0
2025 年 1 月 15 日
androidx.activity:activity:1.10.0、androidx.activity:activity-compose:1.10.0 和 androidx.activity:activity-ktx:1.10.0 已发布。版本 1.10.0 包含这些提交。
自 1.9.0 以来的重要变更
PhotoPicker现在允许按顺序选择图片,并选择初始可见的标签页(相册或图片)。- 触发照片选择器的
PickVisualMedia和PickMultipleVisualMediaActivity Result 合同不再在系统照片选择器不可用时直接委托给 Google Play 服务,而是使用公共的ACTION_SYSTEM_FALLBACK_PICK_IMAGES操作和相关额外数据,为 OEM 和系统应用提供一致的照片选择器体验作为回退方案。 - 新的
LocalActivity组合本地提供当前范围的Activity,消除了开发者从LocalContext获取Activity的需要。
版本 1.10.0-rc01
2024 年 12 月 11 日
androidx.activity:activity:1.10.0-rc01、androidx.activity:activity-compose:1.10.0-rc01 和 androidx.activity:activity-ktx:1.10.0-rc01 已发布。版本 1.10.0-rc01 包含这些提交。
Bug 修复
- 修复了在
PredictiveBackHandler处于活动状态时更改启用状态会立即中断回调的问题。现在,无论启用状态如何变化,它都会完成当前回调。(Ib8719)
版本 1.10.0-beta01
2024 年 11 月 13 日
androidx.activity:activity:1.10.0-beta01、androidx.activity:activity-compose:1.10.0-beta01 和 androidx.activity:activity-ktx:1.10.0-beta01 已发布,自上一个 Alpha 版以来没有变化。版本 1.10.0-beta01 包含这些提交。
版本 1.10.0-alpha03
2024 年 10 月 30 日
androidx.activity:activity:1.10.0-alpha03、androidx.activity:activity-compose:1.10.0-alpha03 和 androidx.activity:activity-ktx:1.10.0-alpha03 已发布。版本 1.10.0-alpha03 包含这些提交。
API 变更
- 新增
LocalActivity组合本地,为当前范围提供Activity,从而消除了开发者从LocalContext获取Activity的需求。它还附带了一个新的 lint 规则,用于检查LocalContext何时被错误地强制转换为Activity。(I7746a,b/283009666)
Bug 修复
- 来自Activity
1.9.3:PredictiveBackHandler在处理程序被禁用后将不再触发其回调。这将修复 Navigation Compose 中的NavHost会抛出IndexOutOfBoundsException的问题。(I3f75e,b/365027664,b/340202286)
依赖项更新
- Activity Compose 现在依赖于 Compose Runtime 1.7.0。(I7746a,b/283009666)
版本 1.10.0-alpha02
2024 年 9 月 4 日
androidx.activity:activity:1.10.0-alpha02、androidx.activity:activity-compose:1.10.0-alpha02 和 androidx.activity:activity-ktx:1.10.0-alpha02 已发布。版本 1.10.0-alpha02 包含这些提交。
行为变更
- 触发照片选择器的
PickVisualMedia和PickMultipleVisualMediaActivity Result 合同不再在系统照片选择器不可用时直接委托给 Google Play 服务,而是使用公共的ACTION_SYSTEM_FALLBACK_PICK_IMAGES操作和相关额外数据,为 OEM 和系统应用提供一致的照片选择器体验作为回退方案。对于安装了最新版 Google Play 服务的设备,这应该不会影响用户体验。(I3513d)
Bug 修复
- 移除了对新平台 API 访问的手动概要,因为在使用 AGP 7.3 或更高版本(例如 R8 版本 3.3)的 R8 时,以及在使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)的所有构建中,这都会通过 API 建模自动发生。不使用 AGP 的客户端建议更新到 D8 8.1 或更高版本。有关更多详细信息,请参阅本文。(I9496c,b/345472586)
- 来自Activity
1.9.2:修复了 Activity ComposePredictiveBackHandlerAPI 在禁用帧后仍会继续处理系统返回手势的问题,这可能导致 Navigation Compose 等库在返回堆栈为空时也处理返回,从而抛出IndexOutOfBoundsException。(Ie3301,b/340202286) - 来自Activity
1.9.1:修复了PredictiveBackHandler的一个问题,即在执行系统返回后,尝试从OnBackPressedDispatcher执行onBackPressed会失败。(I5f1f8)
版本 1.10.0-alpha01
2024 年 6 月 26 日
androidx.activity:activity:1.10.0-alpha01、androidx.activity:activity-compose:1.10.0-alpha01 和 androidx.activity:activity-ktx:1.10.0-alpha01 已发布。此版本在内部分支中开发。
新功能
- 新增对 Android V 中引入的
PhotoPicker新功能的支持,包括能够按顺序选择图像以及选择初始显示的选项卡(相册或图像)。
版本 1.9
版本 1.9.3
2024 年 10 月 16 日
androidx.activity:activity:1.9.3、androidx.activity:activity-compose:1.9.3 和 androidx.activity:activity-ktx:1.9.3 已发布。版本 1.9.3 包含这些提交。
Bug 修复
PredictiveBackHandler在处理程序被禁用后将不再触发其回调。这将修复 Navigation Compose 中的NavHost会抛出IndexOutOfBoundsException的问题。(I3f75e,b/340202286)
版本 1.9.2
2024 年 9 月 4 日
androidx.activity:activity:1.9.2、androidx.activity:activity-compose:1.9.2 和 androidx.activity:activity-ktx:1.9.2 已发布。版本 1.9.2 包含这些提交。
Bug 修复
- 修复了 Activity Compose
PredictiveBackHandlerAPI 在禁用帧后仍会继续处理系统返回手势的问题,这可能导致 Navigation Compose 等库在返回堆栈为空时也处理返回,从而抛出IndexOutOfBoundsException。(Ie3301,b/340202286)
版本 1.9.1
2024 年 7 月 24 日
androidx.activity:activity:1.9.1、androidx.activity:activity-compose:1.9.1 和 androidx.activity:activity-ktx:1.9.1 已发布。版本 1.9.1 包含这些提交。
Bug 修复
- 修复了
PredictiveBackHandler的一个问题,即在执行系统返回后,尝试从OnBackPressedDispatcher执行onBackPressed会失败。(I5f1f8)
版本 1.9.0
2024 年 4 月 17 日
androidx.activity:activity:1.9.0、androidx.activity:activity-compose:1.9.0 和 androidx.activity:activity-ktx:1.9.0 已发布。版本 1.9.0 包含这些提交。
自 1.8.0 以来的重要变更
ComponentActivity现在实现OnUserLeaveHintProvider,以允许组件为onUserLeaveHint事件提供回调。OnBackPressedCallback、BackHandler和PredictiveBackHandlerAPI 现在在处理返回时调用onBackPressedDispatcher.onBackPressed()时会发出警告,因为这总是会破坏预测返回动画。有关详细信息,请参阅最佳实践指南。- Activity API 的其余部分已用 Kotlin 重写,并且以前在
activity-ktx中可用的所有扩展都已移至activity。activity-ktx现在完全为空。- 作为将
ActivityResultLauncher转换为 Kotlin 的一部分,getContract方法现在是一个抽象的 Kotlin 属性。这是一个二进制兼容的更改,但如果您的ActivityResultLauncher实现是用 Kotlin 编写的,则会破坏源兼容性。
- 作为将
版本 1.9.0-rc01
2024 年 4 月 3 日
androidx.activity:activity:1.9.0-rc01、androidx.activity:activity-compose:1.9.0-rc01 和 androidx.activity:activity-ktx:1.9.0-rc01 已发布。版本 1.9.0-rc01 包含这些提交。
依赖项更新
- Activity 现在依赖于 Profile Installer 1.3.1。
版本 1.9.0-beta01
2024 年 3 月 20 日
androidx.activity:activity:1.9.0-beta01、androidx.activity:activity-compose:1.9.0-beta01 和 androidx.activity:activity-ktx:1.9.0-beta01 已发布。版本 1.9.0-beta01 包含这些提交。
Bug 修复
- 修复了 Activity
1.9.0-alpha02中引入的 Activity 启动性能回归问题,该问题是由于在 Activity 创建过程中调用OnBackPressedDispatcher引起的。(Ie75e3)
版本 1.9.0-alpha03
2024 年 2 月 7 日
androidx.activity:activity:1.9.0-alpha03、androidx.activity:activity-compose:1.9.0-alpha03 和 androidx.activity:activity-ktx:1.9.0-alpha03 已发布。版本 1.9.0-alpha03 包含这些提交。
Lint 警告
OnBackPressedCallback、BackHandler和PredictiveBackHandlerAPI 现在在处理返回时调用onBackPressedDispatcher.onBackPressed()时会发出警告,因为这总是会破坏预测返回动画。有关详细信息,请参阅最佳实践指南。(1e4222、2c950d、b/287505200)
Bug 修复
- 如果在一个已经运行的预测返回手势期间从系统发送返回事件,则当前运行的预测返回手势将被取消,并且新的返回事件将接管以开始新的预测返回手势。(I3482e)
- 修复了首次从后台线程访问
ComponentActivity中的onBackPressedDispatcher时发生的崩溃。现在可以在任何线程上安全地访问onBackPressedDispatcher。(I79955)
版本 1.9.0-alpha02
2024 年 1 月 24 日
androidx.activity:activity:1.9.0-alpha02、androidx.activity:activity-compose:1.9.0-alpha02 和 androidx.activity:activity-ktx:1.9.0-alpha02 已发布。版本 1.9.0-alpha02 包含这些提交。
Kotlin 转换
ActivityResultRegistry已用 Kotlin 重写。这确保了传递给register的契约泛型的可空性将正确地传递给返回给您的ActivityResultLauncher。(I121f0)ActivityResult已用 Kotlin 重写。支持解构为resultCode和data字段的ActivityResultKotlin 扩展已从activity-ktx移至activity。(I0565a)ComponentActivity和trackPipAnimationHintView的by viewModels()的 Kotlin 扩展已从activity-ktx移至activity。activity-ktx工件现在完全为空。(I0a444)
Bug 修复
enableEdgeToEdgeAPI 现在围绕所有显示屏切口绘制。(a3644b, b/311173461)- 来自 Activity
1.8.2:修复了传递给 Photo Picker Activity Contract 的ACTION_SYSTEM_FALLBACK_PICK_IMAGES的额外数据,以正确传递EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX键,而不是使用键为"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"的额外数据。强烈建议作为实现系统回退 Photo Picker 的 OEM 支持这两种额外数据,以确保最广泛的兼容性。(I96a00)
版本 1.9.0-alpha01
2023 年 11 月 29 日
androidx.activity:activity:1.9.0-alpha01、androidx.activity:activity-compose:1.9.0-alpha01 和 androidx.activity:activity-ktx:1.9.0-alpha01 已发布。版本 1.9.0-alpha01 包含这些提交。
新功能
ComponentActivity现在实现OnUserLeaveHintProvider,以允许组件为onUserLeaveHint事件提供回调。(I54892)
API 变更
ComponentActivity已用 Kotlin 重写。(I14f31)ActivityResultCaller已用 Kotlin 重写。(Ib02e4)ActivityResultLauncher已用 Kotlin 重写。作为该转换的一部分,getContract方法现在是一个抽象的 Kotlin 属性。这是一个二进制兼容的更改,但如果您的ActivityResultLauncher实现是用 Kotlin 编写的,则会破坏源兼容性。(Id4615)PickVisualMediaRequest现在具有与PickVisualMediaActivity Result contract 相同的最低 API 级别 19。(Id6e21)
依赖项更新
- Activity 现在依赖于 Core
1.13.0-alpha01。(I14f31)
版本 1.8
版本 1.8.2
2023 年 12 月 13 日
androidx.activity:activity:1.8.2、androidx.activity:activity-compose:1.8.2 和 androidx.activity:activity-ktx:1.8.2 已发布。版本 1.8.2 包含这些提交。
Bug 修复
- 修复了传递给 Photo Picker Activity Contract 的
ACTION_SYSTEM_FALLBACK_PICK_IMAGES的额外数据,以正确传递EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX键,而不是使用键为"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"的额外数据。强烈建议作为实现系统回退 Photo Picker 的 OEM 支持这两种额外数据,以确保最广泛的兼容性。(I96a00)
版本 1.8.1
2023 年 11 月 15 日
androidx.activity:activity:1.8.1、androidx.activity:activity-compose:1.8.1 和 androidx.activity:activity-ktx:1.8.1 已发布。版本 1.8.1 包含这些提交。
Bug 修复
OnBackPressedDispatcher现在即使在处理返回手势时添加了新的OnBackPressedCallback,也会继续分派到正确的OnBackPressedCallback。(Id0ff6)
版本 1.8.0
2023 年 10 月 4 日
androidx.activity:activity:1.8.0、androidx.activity:activity-compose:1.8.0 和 androidx.activity:activity-ktx:1.8.0 已发布。版本 1.8.0 包含这些提交。
自 1.7.0 以来的重要变更
- 预测返回 -
OnBackPressedCallback现在提供新的预测返回回调,用于处理返回手势的开始、手势全程的进度以及返回手势的取消,此外还有之前用于提交返回手势时的handleOnBackPressed()回调。这还包括PredictiveBackHandlerComposable,用于在 Activity Compose 中处理预测返回手势事件。它提供一个BackEventCompat对象流,必须在您提供的 suspending lambda 中收集。
PredictiveBackHandler { progress: Flow<BackEventCompat> ->
// code for gesture back started
try {
progress.collect { backEvent ->
// code for progress
}
// code for completion
} catch (e: CancellationException) {
// code for cancellation
}
}
ComponentActivity.onBackPressed() 现已弃用,取而代之的是用于处理返回的 API。开发者现在应该使用 OnBackPressedDispatcher,而不是覆盖此方法。
- EdgeToEdge -
ComponentActivity.enableEdgeToEdge()已添加,以便以向后兼容的方式轻松设置全屏显示。
版本 1.8.0-rc01
2023 年 9 月 20 日
androidx.activity:activity:1.8.0-rc01、androidx.activity:activity-compose:1.8.0-rc01 和 androidx.activity:activity-ktx:1.8.0-rc01 已发布。版本 1.8.0-rc01 包含这些提交。
版本 1.8.0-beta01
2023 年 9 月 6 日
androidx.activity:activity:1.8.0-beta01、androidx.activity:activity-compose:1.8.0-beta01 和 androidx.activity:activity-ktx:1.8.0-beta01 已发布。版本 1.8.0-beta01 包含这些提交。
文档改进
- 改进了
BackEventCompat的文档。(aosp/2722254)
版本 1.8.0-alpha07
2023 年 8 月 23 日
androidx.activity:activity:1.8.0-alpha07、androidx.activity:activity-compose:1.8.0-alpha07 和 androidx.activity:activity-ktx:1.8.0-alpha07 已发布。版本 1.8.0-alpha07 包含这些提交。
新功能
Activity Compose 添加了一个新的
PredictiveBackHandlerComposable,用于处理预测返回手势事件。它提供了一个BackEventCompat对象Flow,必须在您提供的 suspending lambda 中收集。PredictiveBackHandler { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress } // code for completion } catch (e: CancellationException) { // code for cancellation } }它还通过 lint 规则提供编译时警告,以确保
Flow调用collect()。(Id2773,b/294884345)ComponentActivity中的onBackPressedDispatcher现在是惰性初始化的,因此只有在需要时才会创建。(I0bf8e)
Bug 修复
ComponentActivity在 Android 13 上接收到onBackPressed()回调且 Activity 已DESTROYED时,将不再显示 NPE。(Idb055,b/291869278)- 删除了实验性
isAtLeastU()API 的使用。(Ie9117,b/289269026)
版本 1.8.0-alpha06
2023 年 6 月 21 日
androidx.activity:activity:1.8.0-alpha06、androidx.activity:activity-compose:1.8.0-alpha06 和 androidx.activity:activity-ktx:1.8.0-alpha06 已发布。版本 1.8.0-alpha06 包含这些提交。
新功能
OnBackPressedDispatcher现在在预测返回手势期间移除任何回调时,会正确取消这些回调。(I3f90f)
API 变更
- 当将
SystemBarStyle.auto传递给enableEdgeToEdgeAPI 时,您现在可以覆盖detectDarkModelambda 参数,以提供自定义逻辑来检测夜间模式。(aosp/2546393,b/278263793)
版本 1.8.0-alpha05
2023 年 6 月 7 日
androidx.activity:activity:1.8.0-alpha05、androidx.activity:activity-compose:1.8.0-alpha05 和 androidx.activity:activity-ktx:1.8.0-alpha05 已发布。此版本是在内部分支中开发的。
API 变更
- Activity 现在提供了一个
BackEventCompat类,它是一个与框架BackEvent类解耦的向后兼容的BackEvent版本。 - 重大变更:
OnBackPressedCallback的handleOnBackStarted和handleOnBackProgressed方法现在接收androidx.activity.BackEventCompat实例,而不是框架android.window.BackEvent类。OnBackPressedDispatcher上等效的@VisibleForTestingAPI 也已更新。 OnBackPressedDispatcher的构造函数现在接受一个可选的Consumer<Boolean>实例,该实例允许调度器的所有者在启用的回调数量从零变为非零或反之亦然时接收回调。
Bug 修复
- 来自 Activity
1.7.2:修复了在调用report之前从屏幕导航走时ReportDrawn崩溃的问题。(Ic46f1,b/260506820)
版本 1.8.0-alpha04
2023 年 5 月 10 日
androidx.activity:activity:1.8.0-alpha04、androidx.activity:activity-compose:1.8.0-alpha04 和 androidx.activity:activity-ktx:1.8.0-alpha04 已发布。此版本从内部分支发布。
Bug 修复
- 来自 Activity 1.7.1:- 当将
ComponentActivity与ActivityScenario一起使用时,ReportFullyDrawExecuter不再泄漏。(Id2ff2,b/277434271)
版本 1.8.0-alpha03
2023 年 4 月 12 日
androidx.activity:activity:1.8.0-alpha03、androidx.activity:activity-compose:1.8.0-alpha03 和 androidx.activity:activity-ktx:1.8.0-alpha03 已发布。此版本从内部分支发布。
新功能
- 添加了
ComponentActivity.setUpEdgeToEdge(),以便以向后兼容的方式轻松设置全屏显示。
API 变更
ComponentActivity.onBackPressed()现已弃用,取而代之的是用于处理返回的 API。开发者现在应该使用OnBackPressedDispatcher,而不是覆盖此方法。(Ibce2f,b/271596918)ComponentDialog和ComponentActivity现在包含公共 APIinitViewTreeOwners(),用于在设置内容视图之前初始化所有视图树所有者。(Ibdce0,b/261314581)
Bug 修复
- 修复了 Fragments 错误地使 MenuHosts 失效并导致 Activity 中其他菜单出现意外行为的问题。(I9404e,b/244336571)
其他变更
ActivityResultRegister现在使用 KotlinRandom而不是 Java。(I4d98f,b/272096025)
版本 1.8.0-alpha02
2023 年 3 月 8 日
androidx.activity:activity:1.8.0-alpha02、androidx.activity:activity-compose:1.8.0-alpha02 和 androidx.activity:activity-ktx:1.8.0-alpha02 已发布。从内部分支开发。
依赖项更新
- 来自 Activity
1.7.0-rc01:Activity 现在依赖于Lifecycle 2.6.0。
版本 1.8.0-alpha01
2023 年 2 月 8 日
androidx.activity:activity:1.8.0-alpha01、androidx.activity:activity-compose:1.8.0-alpha01 和 androidx.activity:activity-ktx:1.8.0-alpha01 已发布。此版本从内部分支构建。
新功能
OnBackPressedCallback类现在包含新的预测返回进度回调,用于处理返回手势的开始、手势全程的进度以及返回手势的取消,此外还有之前用于提交返回手势时的handleOnBackPressed()回调。
版本 1.7
版本 1.7.2
2023 年 5 月 24 日
androidx.activity:activity:1.7.2、androidx.activity:activity-compose:1.7.2 和 androidx.activity:activity-ktx:1.7.2 已发布。版本 1.7.2 包含这些提交。
Bug 修复
- 修复了在调用
report之前从屏幕导航走时ReportDrawn崩溃的问题。(Ic46f1,b/260506820)
版本 1.7.1
2023 年 4 月 19 日
androidx.activity:activity:1.7.1、androidx.activity:activity-compose:1.7.1 和 androidx.activity:activity-ktx:1.7.1 已发布。版本 1.7.1 包含这些提交。
Bug 修复
- 当将
ComponentActivity与ActivityScenario一起使用时,ReportFullyDrawExecuter不再泄漏。(Id2ff2,b/277434271)
版本 1.7.0
2023 年 3 月 22 日
androidx.activity:activity:1.7.0、androidx.activity:activity-compose:1.7.0 和 androidx.activity:activity-ktx:1.7.0 已发布。版本 1.7.0 包含这些提交。
自 1.6.0 以来的重要变更
PickVisualMedia和PickMultipleVisualMedia中的 Photo Picker activity contract 已更新,包含一个额外的回退机制,用于在MediaStore.ACTION_PICK_IMAGES不可用时,允许 OEM 和系统应用(例如 Google Play 服务)通过实现回退操作,在更广泛的 Android 设备和 API 级别上提供一致的 Photo Picker 体验。如果此回退机制可用,Photo Picker 将会使用它,然后再回退到使用Intent.ACTION_OPEN_DOCUMENT,后者仍支持所有 API 19 及更高版本的设备。ComponentDialog现在实现SavedStateRegistryOwner并可以访问其自己的SavedStateRegistry,并为其ViewTree设置SavedStateRegistryOwner。现在可以在ComponentDialog中使用 Jetpack Compose,因为它满足通过ViewTreeAPI 附加到 Window 的LifecycleOwner和SavedStateRegistryOwner要求。IntentSenderRequest.Builder.setFlags()现在允许您设置Intent中的多个标志,而不仅仅是一个标志。
Kotlin 转换
许多 Activity 类已转换为 Kotlin。所有转换后的类仍与以前的版本保持二进制兼容性。以下类对于用 Kotlin 编写的类存在源不兼容的更改:ActivityResultRegistryOwner、OnBackPressedDispatcherOwner。
下表提供了新版 Activity 的源转换。
| Activity 1.5 | Activity 1.6 |
|---|---|
override fun getActivityResultRegistry() = activityResultRegistry |
override val activityResultRegistry = activityResultRegistry |
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher |
override val onBackPressedDispatcher = onBackPressedDispatcher |
这些类也已转换为 Kotlin,但仍保持源兼容性:ContextAware、ContextAwareHelper、OnContextAvailableListener、IntentSenderRequest 和 OnBackPressedDispatcher
FullyDrawnReporter API
ComponentActivity 现在提供了一个 FullyDrawnReporter 实例,允许多个组件报告何时准备好进行交互。ComponentActivity 将等待所有组件完成,然后代表您调用 reportFullyDrawn()。这些 API 会为您处理时间要求,无需在 onDraw 调用中调用它们。
鼓励使用这些 API 来实现:
- 在启动完成时向 Android Runtime 发送信号,以确保多帧启动序列中运行的所有代码都包含在后台编译中并获得优先级。
- 向 Macrobenchmark 和 Play Vitals 发送信号,说明您的应用程序何时应被视为完全绘制以用于启动指标,以便您可以跟踪性能。
添加了三个 Activity Compose API,以便更方便地从单个可组合项中使用 FullyDrawnReporter
ReportDrawn指示您的可组合项立即准备好进行交互。ReportDrawnWhen接受一个谓词(例如,list.count > 0)来指示您的可组合项何时准备好进行交互。ReportDrawnAfter接受一个挂起方法,当它完成时,表示您已准备好进行交互。
依赖项更新
- Activity 现在依赖于 Lifecycle
2.6.1。(8fc31d) - Activity 现在依赖于 ProfileInstaller
1.3.0。(83d3b1)
版本 1.7.0-rc01
2023 年 3 月 8 日
androidx.activity:activity:1.7.0-rc01、androidx.activity:activity-compose:1.7.0-rc01 和 androidx.activity:activity-ktx:1.7.0-rc01 已发布。版本 1.7.0-rc01 包含这些提交。
依赖项更新
- Activity 现在依赖于
Lifecycle 2.6.0。
版本 1.7.0-beta02
2023 年 2 月 22 日
androidx.activity:activity:1.7.0-beta02、androidx.activity:activity-compose:1.7.0-beta02 和 androidx.activity:activity-ktx:1.7.0-beta02 已发布。版本 1.7.0-beta02 包含这些提交。
API 变更
PickVisualMedia和PickMultipleVisualMediacontracts 在MediaStore.ACTION_PICK_IMAGES不可用时作为回退机制所使用的 action 和 extra 现在是公共常量,为希望提供一致照片选择器体验的 OEM 和系统应用提供了 API 稳定性。此回退机制的实现仍然仅限于系统应用。(Icd320)
版本 1.7.0-beta01
2023 年 2 月 8 日
androidx.activity:activity:1.7.0-beta01、androidx.activity:activity-compose:1.7.0-beta01 和 androidx.activity:activity-ktx:1.7.0-beta01 已发布。版本 1.7.0-beta01 包含这些提交。
新功能
IntentSenderRequest.Builder.setFlags()现在允许您设置Intent中的多个标志,而不仅仅是一个标志。(Iac04c)
Bug 修复
PickVisualMedia在框架照片选择器不可用时的回退现在正确地将处理限制为设备系统映像中安装的应用程序。(If8ae6)
Kotlin 转换
ActivityResultRegistryOwner现在用 Kotlin 编写。对于用 Kotlin 编写的类来说,这是一个源不兼容的更改——您现在必须覆盖activityResultRegistry属性,而不是实现以前的getActivityResultRegistry()函数。(I0b00e)OnBackPressedDispatcherOwner现在用 Kotlin 编写。对于用 Kotlin 编写的类来说,这是一个源不兼容的更改——您现在必须覆盖onBackPressedDispatcher属性,而不是实现以前的getOnBackPressedDispatcher函数。(Ia277d)ContextAware、ContextAwareHelper、OnContextAvailableListener、IntentSenderRequest和OnBackPressedDispatcher现在用 Kotlin 编写。(I1a73e、Iada92、aosp/2410754、I18ac7、b/257291701)
版本 1.7.0-alpha04
2023 年 1 月 25 日
androidx.activity:activity:1.7.0-alpha04、androidx.activity:activity-compose:1.7.0-alpha04 和 androidx.activity:activity-ktx:1.7.0-alpha04 已发布。版本 1.7.0-alpha04 包含这些提交。
新功能
PickVisualMedia和PickMultipleVisualMediaActivity Result contracts 现在将在 Android 系统提供的照片选择器(例如,MediaStore.ACTION_PICK_IMAGES)不可用时,使用 Google Play 服务提供的照片选择器。仅检测 Android 系统提供的照片选择器的isPhotoPickerAvailable()API 已弃用。建议使用新的isPhotoPickerAvailable(Context)API,它将返回任一照片选择器是否可用。(I55be6)
版本 1.7.0-alpha03
2023 年 1 月 11 日
androidx.activity:activity:1.7.0-alpha03、androidx.activity:activity-compose:1.7.0-alpha03 和 androidx.activity:activity-ktx:1.7.0-alpha03 已发布。版本 1.7.0-alpha03 包含这些提交。
新功能
ComponentDialog现在实现SavedStateRegistryOwner并可以访问其自己的SavedStateRegistry,并为其 ViewTree 设置SavedStateRegistryOwner。现在可以在ComponentDialog中使用 Jetpack Compose,因为它满足通过 ViewTree API 附加到 Window 的LifecycleOwner和SavedStateRegistryOwner要求。(Idca17,I73468 b/261162296)
API 变更
- 添加了一个
ReportDrawn可组合项,它立即将活动标记为准备好调用reportFullyDrawn。(Ic5b14,b/259687964)
Kotlin 转换
ActvitiyResultCallback和OnBackPressedCallback类都已转换为 Kotlin,同时保持源和二进制兼容性。(Ifc5e5,Ide1b0,b/257291701)
版本 1.7.0-alpha02
2022 年 10 月 24 日
androidx.activity:activity:1.7.0-alpha02、androidx.activity:activity-compose:1.7.0-alpha02 和 androidx.activity:activity-ktx:1.7.0-alpha02 已发布。版本 1.7.0-alpha02 包含这些提交。
Bug 修复
- 来自 Activity
1.6.1:修复了PickMultipleVisualMediaActivity Result contract 在 Android R 设备上使用maxItems的默认值时无法启动的问题。(Ie2776,b/249182130)
版本 1.7.0-alpha01
2022 年 10 月 5 日
androidx.activity:activity:1.7.0-alpha01、androidx.activity:activity-compose:1.7.0-alpha01 和 androidx.activity:activity-ktx:1.7.0-alpha01 已发布。版本 1.7.0-alpha01 包含这些提交。
FullyDrawnReporter API
ComponentActivity 现在提供了一个 FullyDrawnReporter 实例,允许多个组件报告何时准备好进行交互。ComponentActivity 将等待所有组件完成,然后代表您调用 reportFullyDrawn()。这些 API 会为您处理时间要求,无需在 onDraw 调用中调用它们。
鼓励使用这些 API 来实现:
- 在启动完成时向 Android Runtime 发送信号,以确保多帧启动序列中运行的所有代码都包含在后台编译中并获得优先级。
- 向 Macrobenchmark 和 Play Vitals 发送信号,说明您的应用程序何时应被视为完全绘制以用于启动指标,以便您可以跟踪性能。
添加了两个 Activity Compose API,以便更方便地从单个可组合项中使用 FullyDrawnReporter。
ReportDrawnWhen接受一个谓词(例如,list.count > 0)来指示您的可组合项何时准备好进行交互。ReportDrawnAfter接受一个挂起方法,当它完成时,表示您已准备好进行交互。
版本 1.6.1
版本 1.6.1
2022 年 10 月 24 日
androidx.activity:activity:1.6.1、androidx.activity:activity-compose:1.6.1 和 androidx.activity:activity-ktx:1.6.1 已发布。版本 1.6.1 包含这些提交。
Bug 修复
- 修复了
PickMultipleVisualMediaActivity Result contract 在 Android R 设备上使用maxItems的默认值时无法启动的问题。(Ie2776,b/249182130)
版本 1.6.0
版本 1.6.0
2022 年 9 月 21 日
androidx.activity:activity:1.6.0、androidx.activity:activity-compose:1.6.0 和 androidx.activity:activity-ktx:1.6.0 已发布。版本 1.6.0 包含这些提交。
自 1.5.0 以来的重要变更
- 添加了
ActivityResultContracts.PickVisualMedia和ActivityResultContracts.PickMultipleVisualMedia,用于提供向后兼容的 contract,在照片选择器可用时使用MediaStore.ACTION_PICK_IMAGES,在不可用时使用Intent.ACTION_OPEN_DOCUMENT。 - 将 Android 13 中的
OnBackInvokedCallback集成到ComponentActivity和ComponentDialog提供的OnBackPressedDispatchers中。这确保了所有基于OnBackPressedDispatcher构建的 API 在启用预测返回手势时都能正常工作。
版本 1.6.0-rc02
2022 年 9 月 7 日
androidx.activity:activity:1.6.0-rc02、androidx.activity:activity-compose:1.6.0-rc02 和 androidx.activity:activity-ktx:1.6.0-rc02 已发布。版本 1.6.0-rc02 包含这些提交。
Bug 修复
OnBackPressedDispatcher现在使用PRIORITY_DEFAULT而不是PRIORITY_OVERLAY注册OnBackInvokedCallback。(I3901f)- 扩展
ComponentActivity的类现在将始终分派其两个onMultiWindowModeChanged()回调。(Ic4d85) - 当
launch调用抛出任何Exception且回调未注册LifecycleOwner时,ActivityResultRegistry将不再向ActivityResultCallback返回结果。(Ia7ff7,b/238350794) ComponentActivity现在将正确分派菜单调用,而无需在您的 activity 中调用 super 函数。(Ie33c5,b/238057118)
依赖项更新
- Activity 库现在依赖于 Lifecycle
2.5.1。(If6697)
版本 1.6.0-rc01
2022 年 8 月 24 日
androidx.activity:activity:1.6.0-rc01、androidx.activity:activity-compose:1.6.0-rc01 和 androidx.activity:activity-ktx:1.6.0-rc01 已发布。版本 1.6.0-rc01 包含这些提交。
Bug 修复
- 在使用低于 33 的 SDK 版本时,初始化
OnBackPressedDispatcher将不再导致ClassVerificationError。(Ic32e1) - 覆盖
ComponentActivity的onPictureInPictureModeChanged()回调的类现在将始终分派其回调。(Ib7fdb)
版本 1.6.0-beta01
2022 年 8 月 10 日
androidx.activity:activity:1.6.0-beta01、androidx.activity:activity-compose:1.6.0-beta01 和 androidx.activity:activity-ktx:1.6.0-beta01 已发布。版本 1.6.0-beta01 包含这些提交。
API 变更
- 已将
ComponentActivity中已弃用的startActivityForResult和startIntentSenderForResult方法标记为@NonNull,因为传递null总是会导致崩溃。(Id2a25,b/231476082)
Bug 修复
- 来自 Activity
1.5.1:当launch调用抛出任何Exception且回调未注册LifecycleOwner时,ActivityResultRegistry将不再向ActivityResultCallback返回结果。(Ia7ff7,b/238350794) - 来自 Activity
1.5.1:ComponentActivity现在将正确分派菜单调用到onPrepareOptionMenu()、onCreateOptionsMenu()和onOptionsItemSelected()覆盖,而无需调用 super 函数。(Ie33c5,b/238057118)
依赖项更新
- 来自 Activity
1.5.1:Activity 库现在依赖于 Lifecycle 版本2.5.1。(If6697)
版本 1.6.0-alpha05
2022 年 6 月 15 日
androidx.activity:activity:1.6.0-alpha05、androidx.activity:activity-compose:1.6.0-alpha05 和 androidx.activity:activity-ktx:1.6.0-alpha05 已发布。版本 1.6.0-alpha05 是在私人预发布分支中开发的,没有公共提交。
API 变更
minCompileSdk现在是 33,以与 Tiramisu Beta 3 SDK 对齐。
Bug 修复
- 修复了旧设备上执行
PickVisualMediaActivityResultContract的 SDK 扩展检查时发生的崩溃,使其现在应该在运行 Android 10 及更低版本的设备上与ACTION_OPEN_DOCUMENT配合使用。
版本 1.6.0-alpha04
2022 年 5 月 18 日
androidx.activity:activity:1.6.0-alpha04 和 androidx.activity:activity-ktx:1.6.0-alpha04 已发布。
Bug 修复
- 修复了
PickVisualMediaRequest中的一个错误,即尝试通过 Builder 或顶级 Kotlin 函数创建请求会导致堆栈溢出。 - 将 Android 13 Dev Beta 2 中的
OnBackInvokedCallback集成到ComponentDialog提供的OnBackPressedDispatcher中。这确保了所有基于OnBackPressedDispatcher构建的 API 在启用预测返回手势时都能正常工作。
版本 1.6.0-alpha03
2022 年 4 月 27 日
androidx.activity:activity:1.6.0-alpha03、androidx.activity:activity-compose:1.6.0-alpha03 和 androidx.activity:activity-ktx:1.6.0-alpha03 已发布。
- 注意:此版本仅针对 Android 13 Developer Beta 1 SDK 进行编译。
新功能
- 添加了
ActivityResultContracts.PickVisualMedia和ActivityResultContracts.PickMultipleVisualMedia,用于提供向后兼容的 contract,在照片选择器可用时使用MediaStore.ACTION_PICK_IMAGES,在不可用时使用Intent.ACTION_OPEN_DOCUMENT。 - 将 Android 13 Dev Beta 1 中的
OnBackInvokedCallback集成到ComponentActivity提供的OnBackPressedDispatcher中。这确保了所有基于OnBackPressedDispatcher构建的 API 在启用预测返回手势时都能正常工作。
版本 1.6.0-alpha01
2022 年 3 月 23 日
androidx.activity:activity:1.6.0-alpha01、androidx.activity:activity-compose:1.6.0-alpha01 和 androidx.activity:activity-ktx:1.6.0-alpha01 已发布。
- 注意:此版本仅针对 Android 13 Developer Preview 2 SDK 进行编译。
新功能
- 将 Android 13 Dev Preview 2 中的更改集成到
ComponentActivity中。
版本 1.5.1
版本 1.5.1
2022 年 7 月 27 日
androidx.activity:activity:1.5.1、androidx.activity:activity-compose:1.5.1 和 androidx.activity:activity-ktx:1.5.1 已发布。版本 1.5.1 包含这些提交。
Bug 修复
当
launch()调用抛出任何Exception且回调未注册LifecycleOwner时,ActivityResultRegistry将不再向ActivityResultCallback返回结果。(Ia7ff7,b/238350794)ComponentActivity现在将正确分派菜单调用到onPrepareOptionMenu()、onCreateOptionsMenu()和onOptionsItemSelected()覆盖,而无需调用 super 函数。(Ie33c5,b/238057118)
依赖项更新
- Activity 库现在依赖于 Lifecycle
2.5.1。(If6697)
版本 1.5.0
版本 1.5.0
2022 年 6 月 29 日
androidx.activity:activity:1.5.0、androidx.activity:activity-compose:1.5.0 和 androidx.activity:activity-ktx:1.5.0 已发布。版本 1.5.0 包含这些提交。
自 1.4.0 以来的重要变更
- ComponentDialog -
ComponentDialog是Dialog的子类,它包含一个OnBackPressedDispatcher,当系统返回按钮被按下且对话框可见时,将调用该调度器。重要的是,此子类还会设置ViewTreeOnBackPressedDispatcherOwner,允许视图以通用方式检索正确的调度器,无论它存在于ComponentActivity还是ComponentDialog中。 - 回调接口 -
ComponentActivity现在实现了一组模块化回调接口,可以替代Activity回调使用。这些接口包括:OnNewIntentProvider、OnConfigurationChangedProvider、OnTrimMemoryProvider、OnPictureInPictureModeChangedProvider、OnMultiWindowModeChangedProvider - CreationExtras 集成 -
ComponentActivity现在能够通过 Lifecycle2.5.0的CreationExtras提供一个无状态的ViewModelProvider.Factory。
其他变更
ActivityResultContracts.CreateDocument的无参数构造函数已弃用,并替换为接受具体 MIME 类型(例如“image/png”)的新构造函数,这是Intent.ACTION_CREATE_DOCUMENT所要求的。
版本 1.5.0-rc01
2022 年 5 月 11 日
androidx.activity:activity:1.5.0-rc01、androidx.activity:activity-compose:1.5.0-rc01 和 androidx.activity:activity-ktx:1.5.0-rc01 已发布,与 1.5.0-beta01 无任何更改。版本 1.5.0-rc01 包含这些提交。
版本 1.5.0-beta01
2022 年 4 月 20 日
androidx.activity:activity:1.5.0-beta01、androidx.activity:activity-compose:1.5.0-beta01 和 androidx.activity:activity-ktx:1.5.0-beta01 已发布。版本 1.5.0-beta01 包含这些提交。
依赖项更新
- Activity 现在依赖于 Lifecycle
2.4.0-beta01。
版本 1.5.0-alpha05
2022 年 4 月 6 日
androidx.activity:activity:1.5.0-alpha05、androidx.activity:activity-compose:1.5.0-alpha05 和 androidx.activity:activity-ktx:1.5.0-alpha05 已发布。版本 1.5.0-alpha05 包含这些提交。
Bug 修复
ComponentActivity的onPanelClosed()现在也调用 superonPanelClosed(),修复了onContextMenuClosed方法不会被调用的问题。(Ib6f77)
版本 1.5.0-alpha04
2022 年 3 月 23 日
androidx.activity:activity:1.5.0-alpha04、androidx.activity:activity-compose:1.5.0-alpha04 和 androidx.activity:activity-ktx:1.5.0-alpha04 已发布。版本 1.5.0-alpha04 包含这些提交。
Bug 修复
SavedStateViewFactory现在支持使用CreationExtras,即使它已使用SavedStateRegistryOwner初始化。如果提供了 extras,则忽略初始化的参数。(I6c43b,b/224844583)
版本 1.5.0-alpha03
2022 年 2 月 23 日
androidx.activity:activity:1.5.0-alpha03、androidx.activity:activity-compose:1.5.0-alpha03 和 androidx.activity:activity-ktx:1.5.0-alpha03 已发布。版本 1.5.0-alpha03 包含这些提交。
API 变更
- 您现在可以将
CreationExtras传递给 activity 的by viewModels()函数。(I6a3e6,b/217600303)
版本 1.5.0-alpha02
2022 年 2 月 9 日
androidx.activity:activity:1.5.0-alpha02、androidx.activity:activity-compose:1.5.0-alpha02 和 androidx.activity:activity-ktx:1.5.0-alpha02 已发布。版本 1.5.0-alpha02 包含这些提交。
新功能
ComponentActivity现在实现OnPictureInPictureModeChangedProvider接口,以允许任何组件接收画中画模式更改事件。(I9f567)ComponentActivity现在实现OnMultiWindowModeChangedProvider接口,以允许任何组件接收多窗口模式更改事件。(I62d91)
版本 1.5.0-alpha01
2022 年 1 月 26 日
androidx.activity:activity:1.5.0-alpha01、androidx.activity:activity-compose:1.5.0-alpha01 和 androidx.activity:activity-ktx:1.5.0-alpha01 已发布。版本 1.5.0-alpha01 包含这些提交。
新功能
ComponentActivity现在与 ViewModel CreationExtras 集成,该功能作为 Lifecycle2.5.0-alpha01的一部分引入。(Ie7e00,b/207012584)- 添加了
ComponentDialog,它是Dialog的子类,包含一个OnBackPressedDispatcher,当系统返回按钮被按下且对话框可见时,将调用该调度器。重要的是,此子类还会设置ViewTreeOnBackPressedDispatcherOwner,允许视图以通用方式检索正确的调度器,无论它存在于ComponentActivity还是ComponentDialog中。(I8a1bc) ComponentActivity现在实现新的OnNewIntentProvider接口,以允许任何组件接收这些事件。(If1f8b)ComponentActivity现在实现新的OnConfigurationChangedProvider接口,以允许任何组件接收这些事件。(If623b)ComponentActivity现在实现新的OnTrimMemoryProvider接口,以允许任何组件接收这些事件。(Ia9295)
API 变更
ActivityResultContracts.CreateDocument的无参数构造函数已弃用,并替换为接受具体 MIME 类型(例如,"image/png")的新构造函数,这是Intent.ACTION_CREATE_DOCUMENT所要求的。(I2bec6)- 现在可以通过
ViewTreeOnBackPressedDispatcherOwner检索与 View 关联的OnBackPressedDispatcherOwner,而不是依赖于强制转换Context。(I74685)
Bug 修复
- 修复了首次从
registerForActivityResult()回调或作为ComponentActivityinit的一部分添加的LifecycleObserver回调访问ViewModel时发生的崩溃。(Ife83f)
版本 1.4.0
版本 1.4.0
2021 年 10 月 27 日
androidx.activity:activity:1.4.0、androidx.activity:activity-compose:1.4.0 和 androidx.activity:activity-ktx:1.4.0 已发布。版本 1.4.0 包含这些提交。
自 1.3.0 以来的重要变更
- AndroidX
ComponentActivity现在实现MenuHost接口。这允许任何组件通过向活动添加MenuProvider实例来向ActionBar添加菜单项。每个MenuProvider可以选择性地添加Lifecycle,该 Lifecycle 将根据 Lifecycle 状态自动控制这些菜单项的可见性,并在 Lifecycle 销毁时处理MenuProvider的移除。 ActivityResultContract类已用 Kotlin 重写,以确保编写 Kotlin 自定义 contract 的开发者可以为其输入和输出类定义正确的可空性。ActivityResultContracts类及其 contract 已用 Kotlin 重写,以确保正确的可空性。
版本 1.4.0-rc01
2021 年 10 月 13 日
androidx.activity:activity:1.4.0-rc01、androidx.activity:activity-compose:1.4.0-rc01 和 androidx.activity:activity-ktx:1.4.0-rc01 已发布。版本 1.4.0-rc01 包含这些提交。
Bug 修复
- 当
launch调用抛出任何Exception时,ActivityResultRegistry将不再向ActivityResultCallback返回结果。(If4f91,b/200845664)
版本 1.4.0-beta01
2021 年 9 月 29 日
androidx.activity:activity:1.4.0-beta01、androidx.activity:activity-compose:1.4.0-beta01 和 androidx.activity:activity-ktx:1.4.0-beta01 已发布。版本 1.4.0-beta01 包含这些提交。
API 变更
- 修复了
ActivityResultContracts.OpenMultipleDocuments和ActivityResultContracts.GetMultipleContents的类型问题,该问题导致在使用 Java 编程语言代码时,它们的输出类型为List<? extends Uri>。(If71de) ActivityResultContracts.StartActivityForResult、ActivityResultContracts.StartIntentSenderForResult和ActivityResultContracts.RequestMultiplePermissions类中的公共常量现在可以通过其公共Companion对象在 Kotlin 中访问。(aosp/1832555)
文档更新
- 由 Activity Result API 处理的 API(即
startActivityForResult、startIntentSenderForResult、onActivityResult、requestPermissions和onRequestPermissionsResult)的弃用消息都已扩展,包含更多详细信息。(cce80f)
版本 1.4.0-alpha02
2021 年 9 月 15 日
androidx.activity:activity:1.4.0-alpha02、androidx.activity:activity-compose:1.4.0-alpha02 和 androidx.activity:activity-ktx:1.4.0-alpha02 已发布。版本 1.4.0-alpha02 包含这些提交。
新功能
activity-compose工件现在包含一个LaunchDuringCompositionlint 错误,它阻止您在组合过程中调用ActivityResultLauncher的launch方法,因为组合应该是无副作用的。请使用处理副作用的 API。(7c2bbe,b/191347220)
API 变更
ActivityResultContract类已用 Kotlin 重写,以确保编写 Kotlin 自定义 contract 的开发者可以为其输入和输出类定义正确的可空性。(I8a8f5)ActivityResultContracts类及其 contract 已用 Kotlin 重写,以确保正确的可空性。(I69802)
版本 1.4.0-alpha01
2021 年 9 月 1 日
androidx.activity:activity:1.4.0-alpha01、androidx.activity:activity-compose:1.4.0-alpha01 和 androidx.activity:activity-ktx:1.4.0-alpha01 已发布。版本 1.4.0-alpha01 包含这些提交。
新功能
- AndroidX
ComponentActivity现在实现MenuHost接口。这允许任何组件通过向 activity 添加MenuProvider实例来向ActionBar添加菜单项。每个MenuProvider可以选择性地添加Lifecycle,该 Lifecycle 将根据 Lifecycle 状态自动控制这些菜单项的可见性,并在 Lifecycle 销毁时处理MenuProvider的移除。(I3b608)
/**
* Using the addMenuProvider() API directly in your Activity
**/
class ExampleActivity : ComponentActivity(R.layout.activity_example) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Add menu items without overriding methods in the Activity
addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// Add menu items here
menuInflater.inflate(R.menu.example_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
// Handle the menu selection
return true
}
})
}
}
/**
* Using the addMenuProvider() API in a Fragment
**/
class ExampleFragment : Fragment(R.layout.fragment_example) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// The usage of an interface lets you inject your own implementation
val menuHost: MenuHost = requireActivity()
// Add menu items without using the Fragment Menu APIs
// Note how we can tie the MenuProvider to the viewLifecycleOwner
// and an optional Lifecycle.State (here, RESUMED) to indicate when
// the menu should be visible
menuHost.addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// Add menu items here
menuInflater.inflate(R.menu.example_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
// Handle the menu selection
return true
}
}, viewLifecycleOwner, Lifecycle.State.RESUMED)
}
行为变更
ActivityResultRegistry现在将在尝试对尚未注册或已注销的ActivityResultLauncher调用launch()时抛出IllegalStateException。(Ida75d,b/192567522)
外部贡献
版本 1.3.1
版本 1.3.1
2021 年 8 月 4 日
androidx.activity:activity:1.3.1、androidx.activity:activity-compose:1.3.1 和 androidx.activity:activity-ktx:1.3.1 已发布。版本 1.3.1 包含这些提交。
依赖项更新
- Activity 现在依赖于 Kotlin
1.5.21。 - Activity Compose 现在依赖于 Compose
1.0.1。
版本 1.3.0
版本 1.3.0
2021 年 7 月 28 日
androidx.activity:activity:1.3.0、androidx.activity:activity-compose:1.3.0 和 androidx.activity:activity-ktx:1.3.0 已发布。版本 1.3.0 包含这些提交。
自 1.2.0 以来的重要变化
- Activity Compose 工件 -
activity-compose工件提供了setContent扩展方法,用于在 Activity 中托管您的 Jetpack Compose UI,以及 Compose 特定的封装器,用于与ComponentActivityAPI 交互,以处理系统返回按钮和 Activity Result API。有关更多详细信息,请参阅文档。 - CaptureVideo 协定 -
CaptureVideoActivityResultContract取代了目前已弃用的TakeVideo协定,并返回一个布尔值,表示在许多相机应用中均可用的成功结果。 - 画中画提示视图跟踪 -
activity-ktx用户现在可以在Activity上使用trackPipAnimationHintView扩展方法,以便在视图相对于窗口改变位置时,自动使用视图的新位置重建PictureInPictureParams。
版本 1.3.0-rc02
2021年7月14日
androidx.activity:activity:1.3.0-rc02、androidx.activity:activity-compose:1.3.0-rc02 和 androidx.activity:activity-ktx:1.3.0-rc02 已发布。版本 1.3.0-rc02 包含这些提交。
Bug 修复
ActivityResultRegistry回调现在已正确保存和恢复,因此回调不会在 savedState 中重复。(I97816,b/191893160)
版本 1.3.0-rc01
2021年7月1日
androidx.activity:activity:1.3.0-rc01、androidx.activity:activity-compose:1.3.0-rc01 和 androidx.activity:activity-ktx:1.3.0-rc01 已发布,与 1.3.0-beta02 相比没有变化。版本 1.3.0-rc01 包含这些提交。
版本 1.3.0-beta02
2021年6月16日
androidx.activity:activity:1.3.0-beta02、androidx.activity:activity-compose:1.3.0-beta02 和 androidx.activity:activity-ktx:1.3.0-beta02 已发布。版本 1.3.0-beta02 包含这些提交。
已将 activity-compose 更新为依赖 Compose 1.0.0-beta09。androidx.compose.ui:ui-test-junit4 现在对 activity-compose 有编译时依赖。
版本 1.3.0-beta01
2021年6月2日
androidx.activity:activity:1.3.0-beta01、androidx.activity:activity-compose:1.3.0-beta01 和 androidx.activity:activity-ktx:1.3.0-beta01 已发布。版本 1.3.0-beta01 包含这些提交。
API 变更
- 之前已弃用的
@Composable registerForActivityResult()方法已被移除。请使用rememberLauncherForActivityResult()。(Ic39d3)
版本 1.3.0-alpha08
2021年5月18日
androidx.activity:activity:1.3.0-alpha08、androidx.activity:activity-compose:1.3.0-alpha08 和 androidx.activity:activity-ktx:1.3.0-alpha08 已发布。版本 1.3.0-alpha08 包含这些提交。
新功能
- 新的
CaptureVideoActivityResultContract会向您的ActivityResultCallback返回一个布尔值,指示您的视频是否已成功保存到给定 URI。这取代了目前已弃用的TakeVideo协定,因为相机应用很少支持返回缩略图位图,导致结果无用。(Ie21f2,b/185938070) - 添加了新的 API
Activity#setPipAnimationHintView,用于在视图移动时更新 PipParams 的源矩形提示。(I9063d)
API 变更
rememberLauncherForActivityResult函数现在返回一个弃用unregister()函数的启动器 - 启动器的注册和注销由rememberLauncherForActivityResult自动处理。(I2443e)
Compose 兼容性
androidx.activity:activity-compose:1.3.0-alpha08仅兼容 Compose 版本1.0.0-beta07及更高版本。
版本 1.3.0-alpha07
2021年4月21日
androidx.activity:activity:1.3.0-alpha07、androidx.activity:activity-compose:1.3.0-alpha07 和 androidx.activity:activity-ktx:1.3.0-alpha07 已发布。版本 1.3.0-alpha07 包含这些提交。
Bug 修复
rememberLauncherForActivityResult现在返回对同一ActivityResultLauncher实例的稳定引用,即使协定因重组而更改。(Id2d6d)- 使用高于
1.3.0的不稳定版 Fragments 将不再抛出指示您使用1.3.0的误报 lint 错误。(aosp/1670206,b/184847092)
版本 1.3.0-alpha06
2021年4月7日
androidx.activity:activity:1.3.0-alpha06、androidx.activity:activity-compose:1.3.0-alpha06 和 androidx.activity:activity-ktx:1.3.0-alpha06 已发布。版本 1.3.0-alpha06 包含这些提交。
API 变更
registerForActivityResult()API 已重命名为rememberLauncherForActivityResult(),以更好地表明返回的ActivityResultLauncher是为您记住的托管对象。尝试调用unregister返回的ActivityResultLauncher现在将抛出错误。(I2bb6d)LocalOnBackPressedDispatcherOwner.current和LocalActivityResultRegistryOwner.current现在返回一个可空值,以便更好地确定它在当前组合中是否可用。需要这些 API 的 API,例如BackHandler和rememberLauncherForActivityResult(),如果未找到底层所有者,现在将分别抛出更具描述性的错误。NavHost即使在未找到OnBackPressedDispatcherOwner的情况下(例如预览NavHost时)也能正常工作。(I7d8b4)
Bug 修复
- 如果 Activity 为
STOPPED,然后再次STARTED,并且使用 LifecycleOwner 添加了其他回调,则BackHandler将正确拦截返回按钮按下。(I71de6,b/182284739) - 使用带有
Unit输入的自定义ActivityResultContract的launch()方法扩展将不再导致NullPointerException。(I76282,b/183837954)
版本 1.3.0-alpha05
2021年3月24日
androidx.activity:activity:1.3.0-alpha05、androidx.activity:activity-compose:1.3.0-alpha05 和 androidx.activity:activity-ktx:1.3.0-alpha05 已发布。版本 1.3.0-alpha05 包含这些提交。
Bug 修复
- 来自 Activity 1.2.2:修复了
InvalidFragmentVersionForActivityResultlint 检查中的一个问题,该问题在使用 Fragment 1.3.1 或更高版本时导致误报。(I54da1,b/182388985) - 来自 Activity 1.2.2:
ComponentActivity现在避免了在从ActivityResultContract启动Intent时发生ClassNotFoundException,该ActivityResultContract之前作为 extra 保存在另一个Intent中。(Ieff05,b/182906230)
依赖项更新
- 来自 Activity 1.2.2:Activity 现在依赖于 Lifecycle
2.3.1。
版本 1.3.0-alpha04
2021年3月10日
androidx.activity:activity:1.3.0-alpha04、androidx.activity:activity-compose:1.3.0-alpha04 和 androidx.activity:activity-ktx:1.3.0-alpha04 已发布。版本 1.3.0-alpha04 包含这些提交。
Bug 修复
- 来自 Activity
1.2.1:RequestMultiplePermissions现在总是返回所有请求权限的结果,而不仅仅是以前未授予的权限。(I50bc3,b/180884668) - 来自 Activity
1.2.1:ActivityResultRegistry现在确保正在进行的launch()请求将返回其结果,即使您使用相同的键unregister()然后再次register()。(I9ef34,b/181267562) - Activity Compose 不再向运行时类路径添加测试依赖项。(Ifd8b3)
- 修复了
BackHandler的一个问题,该问题导致在重组后仍使用之前设置的onBacklambda。(8eb5eb)
版本 1.3.0-alpha03
2021年2月24日
androidx.activity:activity:1.3.0-alpha03、androidx.activity:activity-compose:1.3.0-alpha03 和 androidx.activity:activity-ktx:1.3.0-alpha03 已发布。版本 1.3.0-alpha03 包含这些提交。
新功能
- 现在有一个 Composable
registerForActivityResult函数,用于从 composables 中获取 Activity 结果。(Ia7851,b/172690553)
API 变更
LocalOnBackPressedDispatcherOwner现在有一个provides函数,可以与CompositionLocalProvider一起使用,取代了asProvidableCompositionLocal()API。(I45d24)
版本 1.3.0-alpha02
2021年2月10日
androidx.activity:activity:1.3.0-alpha02、androidx.activity:activity-compose:1.3.0-alpha02 和 androidx.activity:activity-ktx:1.3.0-alpha02 已发布。版本 1.3.0-alpha02 包含这些提交。
Bug 修复
- 修复了 Activity Compose
1.3.0-alpha01中的一个问题,该问题在使用 Compose1.0.0-alpha12时会导致NoSuchMethodError: No static method setContent异常。所有 Compose 用户都应依赖1.3.0-alpha02及更高版本。(b/179911234)
API 变更
BackHandlerAPI 可用于允许 Composable 拦截系统返回按钮。(I58ed5,b/172154006)
版本 1.3.0-alpha01
2021年2月10日
androidx.activity:activity:1.3.0-alpha01、androidx.activity:activity-compose:1.3.0-alpha01 和 androidx.activity:activity-ktx:1.3.0-alpha01 已发布。版本 1.3.0-alpha01 包含这些提交。
新功能
- 新的
activity-compose工件提供了针对androidx.activity特定 API 的 Jetpack Compose 特定助手。ComponentActivity.setContent已从androidx.compose.ui.platform.setContent移至androidx.activity.compose.setContent。(Icf416)
已知问题
- 使用 Activity Compose
1.3.0-alpha01和依赖它的库(例如androidx.compose.ui:ui-test-junit4:1.0.0-alpha12)将导致NoSuchMethodError: No static method setContent异常。(b/179911234)
版本 1.2.4
版本 1.2.4
2021年7月21日
androidx.activity:activity:1.2.4 和 androidx.activity:activity-ktx:1.2.4 已发布。版本 1.2.4 包含这些提交。
Bug 修复
- 来自 Activity
1.3.0-rc02:ActivityResultRegistry 回调现在已正确保存和恢复,因此回调不会在 savedState 中重复。(I97816,b/191893160)
版本 1.2.3
版本 1.2.3
2021年5月5日
androidx.activity:activity:1.2.3 和 androidx.activity:activity-ktx:1.2.3 已发布。版本 1.2.3 包含这些提交。
Bug 修复
- 使用带有
Unit输入的自定义ActivityResultContract的launch()方法扩展将不再导致NullPointerException。(I76282,b/183837954) - 修复了一个误报 lint 错误,该错误在使用 Fragment
1.3.0时指示您使用 Fragment1.3.0,即使您使用的是更高版本 Fragment 的快照、alpha、beta 或 RC 版本。(f4a57e,b/184847092)
版本 1.2.2
版本 1.2.2
2021年3月24日
androidx.activity:activity:1.2.2 和 androidx.activity:activity-ktx:1.2.2 已发布。版本 1.2.2 包含这些提交。
Bug 修复
- 修复了
InvalidFragmentVersionForActivityResultlint 检查中的一个问题,该问题在使用 Fragment 1.3.1 或更高版本时导致误报。(I54da1,b/182388985) ComponentActivity现在避免了在从ActivityResultContract启动Intent时发生ClassNotFoundException,该ActivityResultContract之前作为 extra 保存在另一个Intent中。(Ieff05,b/182906230)
依赖项更新
- Activity 现在依赖于 Lifecycle
2.3.1。
版本 1.2.1
版本 1.2.1
2021年3月10日
androidx.activity:activity:1.2.1 和 androidx.activity:activity-ktx:1.2.1 已发布。版本 1.2.1 包含这些提交。
Bug 修复
RequestMultiplePermissions现在总是返回所有请求权限的结果,而不仅仅是以前未授予的权限。(I50bc3,b/180884668)ActivityResultRegistry现在确保正在进行的launch()请求将返回其结果,即使您使用相同的键unregister()然后再次register()。(I9ef34,b/181267562)
版本 1.2.0
版本 1.2.0
2021年2月10日
androidx.activity:activity:1.2.0 和 androidx.activity:activity-ktx:1.2.0 已发布。版本 1.2.0 包含这些提交。
自 1.1.0 以来的主要变化
- Activity Result API:
ComponentActivity现在提供了一个ActivityResultRegistry,让您无需在 Activity 或 Fragment 中覆盖方法即可处理startActivityForResult()+onActivityResult()以及requestPermissions()+onRequestPermissionsResult()流程,通过ActivityResultContract提高了类型安全性,并提供了用于测试这些流程的钩子。请参阅更新后的获取 Activity 结果。
ContextAware:ComponentActivity现在实现了ContextAware,允许您添加一个或多个OnContextAvailableListener实例,这些实例将在基础Activity.onCreate()之前收到回调。- 一个挂起 Kotlin 扩展
withContextAvailable()允许您在 Context 可用时运行非挂起块并返回结果。 - 此 API 由 Fragment 1.3.0 中的
FragmentActivity用于恢复FragmentManager的状态。添加到FragmentActivity子类的任何监听器都将在该监听器之后运行。 - 此 API 由 AppCompat 1.3.0-alpha02 或更高版本中的
AppCompatActivity使用。添加到AppCompatActivity子类的任何监听器都将在该监听器之后运行。
- 一个挂起 Kotlin 扩展
ViewTree支持:ComponentActivity现在支持在 Lifecycle2.3.0和 SavedState1.1.0中添加的ViewTreeLifecycleOwner.get(View)、ViewTreeViewModelStoreOwner.get(View)和ViewTreeSavedStateRegistryOwnerAPI,以便它将 Activity 作为直接添加到ComponentActivity的任何 View 的LifecycleOwner、ViewModelStoreOwner和SavedStateRegistryOwner返回。
- reportFullyDrawn() 回溯 -
Activity的reportFullyDrawn()方法已在ComponentActivity中回溯,可在所有 API 级别上工作,修复了 API 19 上的崩溃问题,并为此方法添加了所有 API 级别的跟踪。
版本 1.2.0-rc01
2020年12月16日
androidx.activity:activity:1.2.0-rc01 和 androidx.activity:activity-ktx:1.2.0-rc01 已发布。版本 1.2.0-rc01 包含这些提交。
Bug 修复
外部贡献
ComponentActivity现在覆盖了reportFullyDrawn(),允许在所有 API 级别上调用它,并修复了在 API 19 设备上未获得适当系统权限而调用此方法时发生的崩溃。感谢 Simon Schiller!(b/163239764,#103)
版本 1.2.0-beta02
2020年12月2日
androidx.activity:activity:1.2.0-beta02 和 androidx.activity:activity-ktx:1.2.0-beta02 已发布。版本 1.2.0-beta02 包含这些提交。
Bug 修复
- 修复了 Activity Result API 在使用
Lifecycle注册时不会等待 Lifecycle 达到STARTED状态就传递结果的问题。(I109ea)
外部贡献
- 更新了
launch()的文档,明确指出它可能会抛出ActivityNotFoundException。感谢 Michał Zieliński!(aosp/1493580)
版本 1.2.0-beta01
2020年10月1日
androidx.activity:activity:1.2.0-beta01 和 androidx.activity:activity-ktx:1.2.0-beta01 已发布。版本 1.2.0-beta01 包含这些提交。
Bug 修复
ActivityResultRegistry现在随机生成整数,直到找到一个未分配的整数作为请求代码register(),从而防止因递增请求代码而可能导致的整数溢出。(b/168779518)在
ActivityResultLauncher上调用unregister()时,Lifecycle观察者会正确移除。(b/165608393)
行为变更
- 当尝试使用
LifecycleOwner调用register()时,如果其Lifecycle已达到STARTED状态,则ActivityResultRegistry现在会抛出IllegalStateException。(b/165435866)
文档已更新
ContextAware文档链接到LifecycleOwner,以强调Lifecycle回调是创建和销毁事件的合适位置。(aosp/1414152)
版本 1.2.0-alpha08
2020年8月19日
androidx.activity:activity:1.2.0-alpha08 和 androidx.activity:activity-ktx:1.2.0-alpha08 已发布。版本 1.2.0-alpha08 包含这些提交。
新功能
ComponentActivity现在实现了ContextAware,允许您添加一个或多个OnContextAvailableListener实例,这些实例将在基础Activity.onCreate()之前收到回调。(b/161390636)- 一个挂起 Kotlin 扩展
withContextAvailable()允许您在 Context 可用时运行非挂起块并返回结果。(I8290c) - 此 API 由 Fragment 1.3.0-alpha08 中的
FragmentActivity用于恢复FragmentManager的状态。添加到FragmentActivity子类的任何监听器都将在该监听器之后运行。(I513da) - 此 API 由 AppCompat 1.3.0-alpha02 中的
AppCompatActivity使用。添加到AppCompatActivity子类的任何监听器都将在该监听器之后运行。(I513da)
- 一个挂起 Kotlin 扩展
Bug 修复
- 修复了
ActivityResultFragmentVersionDetectorLint 检查的一个问题,该问题导致其在使用 Lint 27.1.0 或更高版本时中断。(b/162155191)
版本 1.2.0-alpha07
2020年7月22日
androidx.activity:activity:1.2.0-alpha07 和 androidx.activity:activity-ktx:1.2.0-alpha07 已发布。版本 1.2.0-alpha07 包含这些提交。
新功能
- 添加了一个新的
InvalidFragmentVersionForActivityResultlint 检查,该检查验证您在使用 Activity Result API 时是否使用 Fragment1.3.0-alpha07,从而避免了因使用旧版本 Fragments 导致的“无效请求代码”问题和不 functioning 的权限请求运行时崩溃。(b/152554847)
外部贡献
- 修复了
RequestPermissionActivity Result 协定的结果解析时发生的ArrayIndexOutOfBoundsException。(I8f9e3,b/161057605)
版本 1.2.0-alpha06
2020年6月10日
androidx.activity:activity:1.2.0-alpha06 和 androidx.activity:activity-ktx:1.2.0-alpha06 已发布。版本 1.2.0-alpha06 包含这些提交。
新功能
- 您现在可以在 Kotlin 中解构
ActivityResult类,以直接访问requestCode和intent。(b/157212935) ActivityResultLauncher现在允许您获取用于注册启动器的ActivityResultContract。(b/156875743)
API 变更
- 重大变更:
ActivityResultRegistry上的invoke()方法已重命名为onLaunch()。(b/157496491) - 如果未返回任何结果,
OpenMultipleDocuments协定现在向注册回调返回空列表而不是null。(b/157348014)
版本 1.2.0-alpha05
2020年5月20日
androidx.activity:activity:1.2.0-alpha05 和 androidx.activity:activity-ktx:1.2.0-alpha05 已发布。版本 1.2.0-alpha05 包含这些提交。
新功能
- 添加了对 Lifecycle
2.3.0-alpha03中的ViewTreeViewModelStoreOwner和 SavedState1.1.0-alpha01中的ViewTreeSavedStateRegistryOwner的支持,用于在ComponentActivity中使用View时。(aosp/1297993,aosp/1300264)
API 变更
TakePicture协定现在返回一个boolean指示成功,而不是缩略图Bitmap,因为当将图像写入提供的Uri时,相机应用很少支持这一点。(b/154302879)ActivityResultLauncher上的invoke()扩展已被移除,取而代之的是明确使用launch()以更好地表明这些是异步操作。已向androidx.activity.result包添加了ActivityResultLauncher<Void>和ActivityResultLauncher<Unit>的 Kotlin 扩展,分别消除了传递null或Unit的需要,这反映了之前invoke()扩展的行为。(aosp/1304674,aosp/1304675)IntentSenderRequest.Builder的setFlagsMask()和setFlagsValues()方法已合并为一个setFlags()方法。(aosp/1302111)
Bug 修复
- 当使用
LifecycleOwner注册ActivityResultCallback时,修复了回调在状态达到STARTED之前触发的问题。(aosp/1309744)
行为变更
ActivityResultRegistry现在从0xFFFF开始生成请求代码,而不是从0开始,从而防止在 Activity 中使用startActivityForResult()或requestPermissions()时发生重叠。(aosp/1302324)
版本 1.2.0-alpha04
2020年4月29日
androidx.activity:activity:1.2.0-alpha04 和 androidx.activity:activity-ktx:1.2.0-alpha04 已发布。版本 1.2.0-alpha04 包含这些提交。
新功能
- 在 ActivityResult API 中添加了一个可以调用 startIntentSenderForResult 的协定。(b/153007517)
API 变更
prepareCall()方法已重命名为registerForActivityResult(),这在ComponentActivity和 Fragment1.3.0-alpha04中均已生效。(aosp/1278717)GetContents、OpenDocuments和RequestPermissions协定已分别重命名为GetMultipleContents、OpenMultipleDocuments和RequestMultiplePermissions。(aosp/1280161)ComponentActivity现在实现了ActivityResultRegisteryOwner接口。(aosp/1290888)- -
ComponentActivity上的startActivityForResult()/onActivityResult()和onRequestPermissionsResult()API 已弃用。请使用 Activity Result API。(b/154751887)
Bug 修复
- 当使用
GetMultipleContents和OpenMultipleDocuments协定并选择单个项目时,现在会正确地将其返回给您的回调。(b/152941153)
版本 1.2.0-alpha03
2020年4月1日
androidx.activity:activity:1.2.0-alpha03 和 androidx.activity:activity-ktx:1.2.0-alpha03 已发布。版本 1.2.0-alpha03 包含这些提交。
新功能
- 将
TakeVideo、PickContact、GetContent、GetContents、OpenDocument、OpenDocuments、OpenDocumentTree和CreateDocument协定添加到ActivityResultContracts提供的预构建协定集中。(aosp/1262482,aosp/1266916,aosp/1268960) - Activity Result API 现在支持使用可选的
ActivityOptionsCompat启动 Activity 以获取结果。(b/151860054)
API 变更
TakePicture协定现在接受一个Uri输入,用于存储图像的位置。之前不接受任何输入的协定已重命名为TakePicturePreview。(aosp/1262482)ActivityResultRegistry上的registerActivityResultCallback()方法已重命名为register()。(aosp/1267621)ActivityResultLauncher上的dispose()方法已重命名为unregister(),并且ActivityResultRegistry上的unregisterResultCallback()已移除。(aosp/1267621)ActivityResultContact的createIntent()方法现在除了输入外还接受Context,从而可以创建显式 Intent。(aosp/1238800)- 一个
ActivityResultContract现在可以覆盖getSynchronousResult(),以便在不调用startActivityForResult的情况下传递结果。这由RequestPermission和RequestPermissions协定使用,以便在请求的权限已授予时正确传递“已授予”状态。(b/151110799) - 之前可用的
Dial协定已被移除,因为该Intent不应与startActivityForResult()一起使用。(aosp/1266916) - 许多不应扩展的 Activity Result API 现在是
final的。这包括getActivityResultRegistry()、prepareCall()方法、ActivityResultRegistry的所有方法(invoke()除外),以及许多不支持可选 extra 的默认协定。(b/152439361)
Bug 修复
- 修复了
ActivityResultRegistry中的NullPointerException,该异常在尝试将结果传递给配置更改后尚未重新注册的回调时发生;ActivityResultRegistry现在保留这些待处理的结果并在回调重新注册时传递它们。(b/152137004)
版本 1.2.0-alpha02
2020年3月18日
androidx.activity:activity:1.2.0-alpha02 和 androidx.activity:activity-ktx:1.2.0-alpha02 已发布。版本 1.2.0-alpha02 包含这些提交。
新功能
- ActivityResultRegistry:
ComponentActivity现在提供了一个ActivityResultRegistry,让您无需在 Activity 或 Fragment 中覆盖方法即可处理startActivityForResult()+onActivityResult()以及requestPermissions()+onRequestPermissionsResult()流程,通过ActivityResultContract提高了类型安全性,并提供了用于测试这些流程的钩子。请参阅更新后的获取 Activity 结果。(b/125158199)
版本 1.2.0-alpha01
2020年3月4日
androidx.activity:activity:1.2.0-alpha01 和 androidx.activity:activity-ktx:1.2.0-alpha01 已发布。版本 1.2.0-alpha01 包含这些提交。
新功能
- 添加了对 Lifecycle
2.3.0-alpha01中添加的ViewTreeLifecycleOwner.get(View)API 的支持,以便它将 Activity 作为直接添加到 Activity 的任何 View 的LifecycleOwner返回。(aosp/1182955)
Bug 修复
- 修复了 Activity
1.1.0中引入的一个回归问题,该问题在旧版本的平台上运行时会导致onBackPressed()由于android.app.FragmentManager中的一个 bug 而引发IllegalStateException。(b/146290338)
版本 1.1.0
版本 1.1.0
2020年1月22日
androidx.activity:activity:1.1.0 已发布。版本 1.1.0 包含这些提交。
自 1.0.0 以来的重要变化
- Lifecycle ViewModel SavedState 集成:
SavedStateViewModelFactory现在是使用by viewModels()、ViewModelProvider构造函数或ViewModelProviders.of()与ComponentActivity或其子类一起使用时的默认工厂。
版本 1.1.0-rc03
2019年12月4日
androidx.activity:activity:1.1.0-rc03 和 androidx.activity:activity-ktx:1.1.0-rc03 已发布。版本 1.1.0-rc03 包含这些提交。
依赖项更改
- Activity 现在依赖于 Lifecycle
2.2.0-rc03和 Lifecycle ViewModel SavedState1.0.0-rc03。
版本 1.1.0-rc02
2019年11月7日
androidx.activity:activity:1.1.0-rc02 和 androidx.activity:activity-ktx:1.1.0-rc02 已发布。版本 1.1.0-rc02 包含这些提交。
依赖项更改
- Activity 现在依赖于 lifecycle
2.2.0-rc02。
版本 1.1.0-rc01
2019年10月23日
androidx.activity:activity:1.1.0-rc01 和 androidx.activity:activity-ktx:1.1.0-rc01 已发布,与 1.1.0-beta01 相比没有变化。版本 1.1.0-rc01 包含这些提交。
版本 1.1.0-beta01
2019年10月9日
androidx.activity::activity:1.0.0-beta01 和 androidx.activity:activity-ktx:1.0.0-beta01 已发布。版本 1.1.0-beta01 包含这些提交。
依赖项更改
- Activity 现在依赖于 SavedState 1.0.0 稳定版。
版本 1.1.0-alpha03
2019年9月5日
androidx.activity:activity:1.1.0-alpha03 和 androidx.activity:activity-ktx:1.1.0-alpha03 已发布。此版本中包含的提交可在此处找到。
新特性
- Activity 现在依赖于 Core 1.1.0 稳定版。
Bug 修复
- Activity 现在依赖于 Lifecycle
2.2.0-alpha04。
版本 1.1.0-alpha02
2019年8月7日
androidx.activity:activity:1.1.0-alpha02 和 androidx.activity:activity-ktx:1.1.0-alpha02 已发布。此版本中包含的提交可在此处找到。
新特性
SavedStateViewModelFactory现在是使用by viewModels()、ViewModelProvider构造函数或ViewModelProviders.of()与ComponentActivity一起使用时的默认工厂。(b/135716331)
版本 1.1.0-alpha01
2019年7月2日
androidx.activity:activity:1.1.0-alpha01 和 androidx.activity:activity-ktx:1.1.0-alpha01 已发布。此版本中包含的提交可在此处找到。
新特性
activity现在依赖于 Lifecycle2.2.0-alpha02。(aosp/1007817)activity-ktx添加了对lifecycle-runtime-ktx的依赖;在使用activity-ktx或依赖activity-ktx的库(例如fragment-ktx)时,您不再需要显式将其添加到您的依赖项中。(aosp/987162)
版本 1.0.0
版本 1.0.0
2019年9月5日
androidx.activity:activity:1.0.0 和 androidx.activity:activity-ktx:1.0.0 已发布。此版本中包含的提交可在此处找到。
1.0.0 的主要特性
- ComponentActivity:
ComponentActivity是 Fragment1.1.0中FragmentActivity的新基类,并且通过扩展,也是 AppCompat1.1.0中AppCompatActivity的新基类。 - activity-ktx:
activity-ktx模块包含一个by viewModelsKotlin 属性扩展,用于访问 ViewModels。当您包含 Fragment1.1.0中的fragment-ktx时,此模块会自动包含在内。 - OnBackPressedDispatcher:作为覆盖
onBackPressed()的可组合替代方案,您现在可以从任何LifecycleOwner(例如 fragment)注册OnBackPressedCallback以拦截系统返回按钮事件。activity-ktx中已添加了一个带有接收器版本的 lambdaaddCallback。有关更多详细信息,请参阅提供自定义返回导航文档。 - onRetainCustomNonConfigurationInstance 弃用:
onRetainCustomNonConfigurationInstance()和相关的getLastCustomNonConfigurationInstance()API 已弃用。强烈建议使用 ViewModels 来存储非配置状态,因为它们提供了一个适用于任何ViewModelStoreOwner的可组合解决方案,该解决方案明确了保留对象的所有权,并提供了onCleared()回调,以便在 Activity 最终销毁时清理资源。
版本 1.0.0-rc01
2019年7月2日
androidx.activity:activity:1.0.0-rc01 和 androidx.activity:activity-ktx:1.0.0-rc01 已发布,与 1.0.0-beta01 相比没有变化。此版本中包含的提交可在此处找到。
版本 1.0.0-beta01
2019年6月5日
androidx.activity::activity:1.0.0-beta01 和 androidx.activity:activity-ktx:1.0.0-beta01 已发布,与 1.0.0-alpha08 相比没有变化。此版本中包含的提交可在此处找到。
版本 1.0.0-alpha08
2019年5月7日
androidx.activity:activity:1.0.0-alpha08 和 androidx.activity:activity-ktx:1.0.0-alpha08 已发布。此版本中包含的提交可在此处找到。
API 更改
- 重大变更:
ComponentActivity上之前弃用的addOnBackPressedCallback和removeOnBackPressedCallback方法已被移除。aosp/953857 OnBackPressedCallback的setEnabled()和isEnabled()方法现在是 final 的。b/131416833OnBackPressedCallback的remove()方法现在是 final 的。aosp/952720OnBackPressedDispatcher现在具有公共构造函数,允许您为测试等构造自己的实例。aosp/953431ComponentActivity的onBackPressed()现在明确标记为@MainThread。aosp/952721
Bug 修复
- 修复了在从使用
LifecycleOwner添加的OnBackPressedCalback的handleOnBackPressed()方法中调用remove()时发生的ConcurrentModificationException。b/131765095
版本 1.0.0-alpha07
2019年4月25日
androidx.activity:activity:1.0.0-alpha07 和 androidx.activity:activity-ktx:1.0.0-alpha07 已发布。此版本中包含的提交可在此处找到。
API 更改
此版本对 onBackPressed() 的处理方式进行了重大更改。有关更多详细信息,请参阅更新后的自定义返回文档。
OnBackPressedCallback和OnBackPressedDispatcher的方法已标记为@MainThread。(aosp/943813)handleOnBackPressed()方法不再返回boolean。相反,OnBackPressedCallback现在是一个抽象类,可以启用或禁用 - 只有当新的isEnabled()方法返回 true 时,才会调用handleOnBackPressed(),在此方法中您必须处理返回按钮。(aosp/944518)OnBackPressedDispatcher的addCallback方法不再返回Cancellable实例。OnBackPressedCallback现在包含一个remove()方法来实现此功能,允许您在handleOnBackPressed()期间调用remove()。(aosp/944519) (aosp/946316)activity-ktx现在包含一个用于addCallback的接收器范围回调,它接受一个实现handleOnBackPressed()的 lambda,并可以访问isEnabled和remove()。(aosp/944520)
版本 1.0.0-alpha06
2019年4月3日
androidx.activity:activity:1.0.0-alpha06 和 androidx.activity:activity-ktx:1.0.0-alpha06 已发布。此版本中包含的提交可在此处找到。
API 更改
- ComponentActivity 现在包含第二个构造函数,该构造函数接受一个
@LayoutRes int,取代了之前使用@ContentView注解 AppCompatActivity 类的方法。此方法适用于应用和库模块。(b/128352521) - ComponentActivity 上与
OnBackPressedCallback相关的 API 已弃用,取而代之的是新的OnBackPressedDispatcher,可通过getOnBackPressedDispatcher()获取。(aosp/922523) - 向
OnBackPressedDispatcher添加新的OnBackPressedCallback的方法现在返回一个Cancellable对象,允许在不需要显式引用OnBackPressedDispatcher的情况下移除回调。(aosp/922523) - 使用关联的
LifecycleOwner添加OnBackPressedCallback现在会导致在 Lifecycle 启动和停止时分别添加和移除OnBackPressedCallback。(aosp/922523)
版本 1.0.0-alpha05
2019年3月13日
androidx.activity:activity:1.0.0-alpha05 和 androidx.activity:activity-ktx:1.0.0-alpha05 已发布。此版本中包含的完整提交列表可在此处找到。
新特性
@ContentView注解查找现在已缓存。(b/123709449)
版本 1.0.0-alpha04
2019年1月30日
androidx.activity:activity 1.0.0-alpha04 和 androidx.activity:activity-ktx 1.0.0-alpha04 已发布。
新特性
- 添加了对
@ContentView类注解的支持,允许您指示应膨胀哪个布局 XML 文件,作为使用setContentView()的替代方案。(aosp/837619)
API 更改
- 添加了一个说明,指出不应覆盖
getViewModelStore(),并且它将在未来版本中设置为 final。如果您当前正在覆盖此方法,请提交功能请求。(aosp/837619)
Bug 修复
activity模块现在依赖于 ViewModel 2.1.0-alpha02 版本,以匹配activity-ktx模块的依赖项。
版本 1.0.0-alpha03
2018年12月17日
androidx.activity 1.0.0-alpha03 已发布。
新特性
- ComponentActivity 现在实现了
BundleSavedStateRegistryOwner并依赖于新发布的 SavedState 库。[aosp/815133] - ComponentActivity 现在解决了 Android 框架的一个 bug,该 bug 会导致 InputMethodManager 泄漏最后聚焦的视图。[b/37122102]
版本 1.0.0-alpha02
2018年12月3日
API 更改
- 添加了一个说明,指出不应覆盖
getLifecycle(),并且它将在未来版本中设置为final。如果您当前正在覆盖此方法,请提交功能请求。(aosp/815834)
版本 1.0.0-alpha01
2018年11月5日
androidx.activity 1.0.0-alpha01 引入了 ComponentActivity,它是现有 FragmentActivity 和 AppCompatActivity 的新基类。
新特性
- 您现在可以通过
addOnBackPressedCallback注册OnBackPressedCallback,以接收onBackPressed()回调,而无需在您的 Activity 中覆盖该方法。 - 为从
ComponentActivity检索ViewModel添加了一个新的by viewModels()Kotlin 属性委托。 - 待处理的输入事件(如点击)现在在
onStop()中取消。
API 更改
LifecycleOwner和ViewModelStoreOwner的实现已从FragmentActivity移至ComponentActivity。onRetainCustomNonConfigurationInstance已弃用。使用ViewModel存储需要 survive 配置更改的对象。