Activity
最近更新时间 | 当前稳定版 | 下一候选版本 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2021 年 3 月 24 日 | 1.2.2 | - | - | 1.3.0-alpha05 |
声明依赖项
如需添加 Activity 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。
在应用或模块的 build.gradle
文件中添加所需工件的依赖项:
dependencies { def activity_version = "1.2.2" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
如需详细了解依赖项,请参阅添加构建依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对库的改进有某些建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 1.3.0
版本 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 中包含这些提交内容。
问题修复
- 从 Activity 1.2.2 起:修复了使用 Fragment 1.3.1 或更高版本时
InvalidFragmentVersionForActivityResult
lint 检查会导致误报的问题。(I54da1、b/182388985) - 从 Activity 1.2.2 起:从之前在另一
Intent
中保存为 extra 的ActivityResultContract
中启动某个Intent
时,ComponentActivity
现在不再发生ClassNotFoundException
。(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 中包含这些提交内容。
问题修复
- 从 Activity
1.2.1
起:RequestMultiplePermissions
现在一律会返回所有请求的权限的结果,而不是仅返回之前未授予的权限的结果。(I50bc3、b/180884668) - 从 Activity
1.2.1
起:ActivityResultRegistry
现在可确保进行中的launch()
请求将会返回其结果,即使您unregister()
然后又使用同一密钥重新register()
。(I9ef34、b/181267562) - Activity Compose 不再向运行时类路径添加测试依赖项。(Ifd8b3)
- 修复了
BackHandler
存在的以下问题:在重新组合后,系统仍会使用的先前设置的onBack
lambda。(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
函数从可组合项中的 Activity 获取结果。(Ia7851、b/172690553)
API 变更
LocalOnBackPressedDispatcherOwner
现在包含可与CompositionLocalProvider
搭配使用的provides
函数,替换了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 中包含这些提交内容。
问题修复
- 修复了 Activity Compose
1.3.0-alpha01
中在使用 Compose1.0.0-alpha12
时会导致出现NoSuchMethodError: No static method setContent
异常的问题。所有 Compose 用户都应该依赖于1.3.0-alpha02
及更高版本。(b/179911234)
API 变更
BackHandler
API 可用于允许可组合项拦截系统返回按钮。(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.2
版本 1.2.2
2021 年 3 月 24 日
发布了 androidx.activity:activity:1.2.2
和 androidx.activity:activity-ktx:1.2.2
。版本 1.2.2 中包含这些提交内容。
问题修复
- 修复了使用 Fragment 1.3.1 或更高版本时
InvalidFragmentVersionForActivityResult
lint 检查会导致误报的问题。(I54da1、b/182388985) - 从之前在另一
Intent
中保存为 extra 的ActivityResultContract
中启动某个Intent
时,ComponentActivity
现在不再发生ClassNotFoundException
。(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 中包含这些提交内容。
问题修复
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)
和ViewTreeSavedStateRegistryOwner
API,以便针对直接添加到ComponentActivity
中的任何 View 将相应 Activity 返回为LifecycleOwner
、ViewModelStoreOwner
和SavedStateRegistryOwner
。
- reportFullyDrawn() 向后移植 -
reportFullyDrawn()
的Activity
方法已反向移植到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 中包含这些提交内容。
问题修复
- 现在,
ActivityResultRegistry
始终会恢复已保存的确切状态。(Idd56b) - 添加了
ComponentActivity.reportFullyDrawn
跟踪记录 (Ic7632)
外部贡献
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 中包含这些提交内容。
问题修复
- 修复了 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 中包含这些提交内容。
问题修复
ActivityResultRegistry
现在会随机生成整数,直到它找到一个未分配用作请求代码register()
的整数,从而防止因请求代码递增而可能导致的整数溢出。(b/168779518)对
ActivityResultLauncher
调用unregister()
时,正确移除了Lifecycle
观察器。(b/165608393)
行为变更
- 现在,尝试使用
Lifecycle
已达到STARTED
的LifecycleOwner
调用register()
时,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()
可让您在上下文可用时运行非暂停代码块,并返回结果。(I8290c) - 此 API 由 Fragment 1.3.0-alpha08 中的
FragmentActivity
用来恢复FragmentManager
的状态。向FragmentActivity
子类添加的任何监听器都将在该监听器之后运行。(I513da) - 此 API 由 AppCompat 1.3.0-alpha02 中的
AppCompatActivity
使用。向AppCompatActivity
子类添加的任何监听器都将在该监听器之后运行。(I513da)
- 暂停 Kotlin 扩展程序
问题修复
- 修复了在使用 Lint 27.1.0 或更高版本时导致
ActivityResultFragmentVersionDetector
Lint 检查中断的问题。(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 中包含这些提交内容。
新功能
- 添加了新的
InvalidFragmentVersionForActivityResult
lint 检查,用于验证在使用 Activity Result API 时使用的是否为 Fragment1.3.0-alpha07
,从而避免因“请求代码无效”问题引起的运行时崩溃,以及由于使用较低版本的 Fragment 而导致权限请求不起作用的问题。(b/152554847)
外部贡献
- 修复了在针对
RequestPermission
Activity 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 中包含这些提交内容。
新功能
- 在
ComponentActivity
中使用View
时,添加了对来自 Lifecycle2.3.0-alpha03
的ViewTreeViewModelStoreOwner
的支持,以及对来自 SavedState1.1.0-alpha01
的ViewTreeSavedStateRegistryOwner
的支持。(aosp/1297993 和 aosp/1300264)
API 变更
TakePicture
协定现在返回指示成功的boolean
,而不是缩略图Bitmap
,因为在将图片写入提供的Uri
时,相机应用很少支持这种格式。(b/154302879)- 移除了
ActivityResultLauncher
上的invoke()
扩展程序,取而代之的是明确使用launch()
来更好地指示这些是异步操作。针对ActivityResultLauncher<Void>
和ActivityResultLauncher<Unit>
向androidx.activity.result
软件包添加了launch
的 Kotlin 扩展程序,这样就不再需要分别传入null
或Unit
,从之前的invoke()
扩展程序镜像了该行为。(aosp/1304674 和 aosp/1304675) setFlagsMask()
和setFlagsValues()
的IntentSenderRequest.Builder
方法已组合成单个setFlags()
方法。(aosp/1302111)
问题修复
- 向
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)
问题修复
- 使用
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 中包含这些提交内容。
新功能
- 在由
ActivityResultContracts
提供的一组预构建协定的基础上添加了TakeVideo
、PickContact
、GetContent
、GetContents
、OpenDocument
、OpenDocuments
、OpenDocumentTree
和CreateDocument
协定。(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) - 由于
Intent
不会与startActivityForResult()
一起使用,之前可用的Dial
协定已移除。(aosp/1266916) - 许多不会扩展的 Activity Result API 现在都为
final
。其中包括getActivityResultRegistry()
、prepareCall()
方法、除invoke()
以外的所有ActivityResultRegistry
方法,以及一些不支持可选额外项的默认协定。(b/152439361)
问题修复
- 修复了在配置更改后,尝试向尚未重新注册的回调传递结果时,
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 的支持,以便在任意视图的LifecycleOwner
直接添加到 Activity 时返回 Activity。(aosp/1182955)
问题修复
- 修复了在旧版平台上运行时在 Activity
1.1.0
中引入的回归问题,在这些平台上,onBackPressed()
会由于android.app.FragmentManager
中的错误导致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 集成:现在将
by viewModels()
、ViewModelProvider
构造函数或ViewModelProviders.of()
与ComponentActivity
或其子类一起使用时,会使用SavedStateViewModelFactory
作为默认出厂设置。
版本 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.1.0-beta01
和 androidx.activity:activity-ktx:1.1.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 稳定版。
问题修复
- Activity 现在依赖于生命周期
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
现在依赖于生命周期2.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
模块包含用于访问 ViewModel 的by viewModels
Kotlin 属性扩展。当您添加 Fragment1.1.0
中的fragment-ktx
时,系统会自动添加此模块。 - OnBackPressedDispatcher:作为替换
onBackPressed()
的可组合替代方案,您现在可以从任何LifecycleOwner
(如 Fragment)注册OnBackPressedCallback
来拦截系统返回按钮事件。具有接收器版本addCallback
的 lambda 已添加到activity-ktx
。如需了解详情,请参阅提供自定义返回导航文档。 - onRetainCustomNonConfigurationInstance 弃用:已弃用
onRetainCustomNonConfigurationInstance()
和相关的getLastCustomNonConfigurationInstance()
API。强烈建议使用 ViewModel 来存储非配置状态,因为它可以提供适合任何ViewModelStoreOwner
的可组合解决方案。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()
方法现已最终确定。b/131416833OnBackPressedCallback
的remove()
方法现已最终确定。aosp/952720OnBackPressedDispatcher
现在具有公共构造函数,您可以使用它们来构造自己的实例以进行测试等。aosp/953431ComponentActivity
的onBackPressed()
现在已明确标记为@MainThread
。aosp/952721
问题修复
- 修复了从使用
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()
的 lamdba,并且可以访问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 变更
- AppCompatActivity 现在包含采用
@LayoutRes int
的第二个构造函数,取代了以前使用@ContentView
注释 AppCompatActivity 类的行为。此方法同时适用于应用和库模块。(b/128352521) - ComponentActivity 的
OnBackPressedCallback
相关 API 已弃用,取而代之的是可通过getOnBackPressedDispatcher()
检索的新OnBackPressedDispatcher
。(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)
问题修复
- 为了与
activity-ktx
模块的依赖项一致,activity
现在依赖于 ViewModel 的 2.1.0-alpha02 版本。
版本 1.0.0-alpha03
2018 年 12 月 17 日
发布了 androidx.activity 1.0.0-alpha03
。
新功能
- ComponentActivity 现在可实现
BundleSavedStateRegistryOwner
并依赖于新发布的 SavedState 库 [aosp/815133] - ComponentActivity 现在解决了一个 Android 框架方面的问题,该问题会导致 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 中替换该方法。 - 添加了新的
by viewModels()
Kotlin 属性委托,用于从ComponentActivity
检索ViewModel
。 - 现在,
onStop()
中取消了待处理输入事件(例如点击)。
API 变更
LifecycleOwner
和ViewModelStoreOwner
的实现已从FragmentActivity
移至ComponentActivity
。- 弃用了
onRetainCustomNonConfigurationInstance
。请使用ViewModel
存储需要在配置更改后继续留存的对象。