并发

  
使用协程将任务移出主线程,并利用 ListenableFuture。
最新更新 稳定版 发布候选版 Beta 版 Alpha 版
2025 年 5 月 20 日 1.2.0 - 1.3.0-beta01 -

声明依赖项

要添加对 Futures 的依赖项,您必须将 Google Maven 代码库添加到您的项目中。有关详细信息,请阅读Google 的 Maven 代码库

在您的应用或模块的 build.gradle 文件中添加所需工件的依赖项

Groovy

dependencies {
    implementation "androidx.concurrent:concurrent-futures:1.2.0"

    // Kotlin
    implementation "androidx.concurrent:concurrent-futures-ktx:1.2.0"
}

Kotlin

dependencies {
    implementation("androidx.concurrent:concurrent-futures:1.2.0")

    // Kotlin
    implementation("androidx.concurrent:concurrent-futures-ktx:1.2.0")
}

有关依赖项的更多信息,请参阅添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中现有问题。您可以通过点击星形按钮为您关注的现有问题投票。

创建新问题

有关更多信息,请参阅问题跟踪器文档

版本 1.3

版本 1.3.0-beta01

2025 年 5 月 20 日

androidx.concurrent:concurrent-futures:1.3.0-beta01androidx.concurrent:concurrent-futures-ktx:1.3.0-beta01 已发布。版本 1.3.0-beta01 包含这些提交

版本 1.3.0-alpha01

2024 年 12 月 11 日

androidx.concurrent:concurrent-futures:1.3.0-alpha01androidx.concurrent:concurrent-futures-ktx:1.3.0-alpha01 已发布。版本 1.3.0-alpha01 包含这些提交

Bug 修复

  • 此库现在使用 JSpecify 空值注解,它们是类型用途注解。Kotlin 开发者应使用以下编译器参数来强制执行正确用法:-Xjspecify-annotations=strict(从 Kotlin 编译器 2.1.0 版开始,这是默认值)。(I0faf4, b/326456246)

版本 1.2

版本 1.2.0

2024 年 6 月 12 日

androidx.concurrent:concurrent-futures:1.2.0androidx.concurrent:concurrent-futures-ktx:1.2.0 已发布。版本 1.2.0 包含这些提交

自 1.1.0 以来的重要更改

版本 1.2.0-rc01

2024 年 5 月 29 日

androidx.concurrent:concurrent-futures:1.2.0-rc01androidx.concurrent:concurrent-futures-ktx:1.2.0-rc01 已发布。版本 1.2.0-rc01 包含这些提交

版本 1.2.0-beta01

2024 年 5 月 14 日

androidx.concurrent:concurrent-futures:1.2.0-beta01androidx.concurrent:concurrent-futures-ktx:1.2.0-beta01 已发布。版本 1.2.0-beta01 包含这些提交

版本 1.2.0-alpha03

2024 年 3 月 20 日

androidx.concurrent:concurrent-futures:1.2.0-alpha03androidx.concurrent:concurrent-futures-ktx:1.2.0-alpha03 已发布。版本 1.2.0-alpha03 包含这些提交

Bug 修复

  • 修复了当 SuspendToFutureAdapter 任务抛出异常时错误处理中的 bug。(b/327629504)

版本 1.2.0-alpha02

2023 年 8 月 9 日

androidx.concurrent:concurrent-futures:1.2.0-alpha02androidx.concurrent:concurrent-futures-ktx:1.2.0-alpha02 已发布。版本 1.2.0-alpha02 包含这些提交。

API 更改

  • 添加了 SuspendToFutureAdapter 用于编写 suspend-ListenableFuture 桥接器 (Ia8a66)

版本 1.2.0-alpha01

2023 年 2 月 22 日

androidx.concurrent:concurrent-futures:1.2.0-alpha01androidx.concurrent:concurrent-futures-ktx:1.2.0-alpha01 已发布。版本 1.2.0-alpha01 包含这些提交。

API 更改

  • ResolvableFuture 现在其方法上具有正确的空值注解。(I2339f, b/236474470)

版本 1.1.0

版本 1.1.0

2020 年 8 月 19 日

androidx.concurrent:concurrent-futures:1.1.0androidx.concurrent:concurrent-futures-ktx:1.1.0 已发布,自 1.1.0-rc01 以来没有更改。版本 1.1.0 包含这些提交。

自 1.0.0 以来的主要更改

  • 1.1.0 引入了 Kotlin 扩展,用于帮助在 ListenableFuture 和 Kotlin Coroutines 之间进行转换,现在可以通过 androidx.concurrent:concurrent-futures-ktx:1.1.0 获得。此工件旨在与 com.google.guava:listenablefuture 一起使用,而不是完整的 Guava 库,它是一个轻量级的 Guava 替代品,只包含 ListenableFuture。对于完整的 Guava 库用户,您应该改用 kotlinx.coroutines.kotlinx-coroutines-guava 中的官方 ListenableFuture 扩展。

版本 1.1.0-rc01

2020 年 7 月 22 日

androidx.concurrent:concurrent-futures:1.1.0-rc01androidx.concurrent:concurrent-futures-ktx:1.1.0-rc01 已发布,自 1.1.0-beta01 以来没有更改。版本 1.1.0-rc01 包含这些提交。

版本 1.1.0-beta01

2020 年 6 月 24 日

androidx.concurrent:concurrent-futures:1.1.0-beta01androidx.concurrent:concurrent-futures-ktx:1.1.0-beta01 已发布,自 1.1.0-alpha01 以来没有更改。版本 1.1.0-beta01 包含这些提交。

版本 1.1.0-alpha01

2019 年 12 月 18 日

androidx.concurrent:concurrent-futures:1.1.0-alpha01androidx.concurrent:concurrent-futures-ktx:1.1.0-alpha01 已发布。版本 1.1.0-alpha01 包含这些提交。这是 androidx.concurrent:concurrent-futures-ktx 的首次发布。

新功能

  • Kotlin 扩展现在在 concurrent-futures-ktx 中可用,用于帮助在 ListenableFuture 和 Kotlin Coroutines 之间进行转换。此工件旨在与 com.google.guava:listenablefuture 一起使用,而不是完整的 Guava 库,它是一个轻量级的 Guava 替代品,只包含 ListenableFuture。对于完整的 Guava 库用户,您应该改用 kotlinx.coroutines.kotlinx-coroutines-guava 中的官方 ListenableFuture 扩展。

API 更改

  • 添加了挂起的 ListenableFuture.await() 扩展,它将 ListenableFuture 转换为 Kotlin 协程

版本 1.0.0

版本 1.0.0

2019 年 10 月 9 日

androidx.concurrent:concurrent-futures:1.0.0 已发布。版本 1.0.0 包含这些提交

1.0.0 的重要功能

androidx.concurrent:concurrent-futures:1.0.0 提供了 CallbackToFutureAdapter 类,这是一个极简的实用工具,允许封装基于回调的代码并返回 ListenableFuture 实例。对于希望以比自定义回调更优雅的方式在其 Java API 中公开异步操作,但由于库大小问题而没有进行足够多线程密集型工作的库来说,这非常有用。

版本 1.0.0-rc01

2019 年 8 月 7 日

androidx.concurrent:concurrent-futures:1.0.0-rc01 已发布,自 1.0.0-beta01 以来没有更改。此版本中包含的提交可以在此处找到。

Concurrent-ListenableFuture 版本 1.0.0-beta01

2019 年 5 月 30 日

androidx.concurrent:concurrent-listenablefuture:1.0.0-beta01androidx.concurrent:concurrent-listenablefuture-callback:1.0.0-beta01 已发布。此版本中包含的提交可以在此处找到。

这些库提供了 Guava 的 ListenableFuture 接口的独立等效项和用于转换回调的适配器。

之前发布的 androidx.concurrent:concurrent-futures 工件提供了一个类似的适配器,并包含了 com.google.guava:listenablefuture 工件,这对于使用具有严格依赖解析匹配的工具链(例如 Android Gradle 插件 3.4.0)的开发者来说可能存在问题。建议不依赖完整 Guava 库的开发者切换到 androidx.concurrent:concurrent-listenablefuture-callback

版本 1.0.0-beta01

2019 年 5 月 7 日

androidx.concurrent:concurrent-futures:1.0.0-beta01 已发布。此版本中包含的提交可以在此处找到。

API 更改

  • ResolvableFutureAbstractResolvableFuture 已从公共 API 中隐藏,转而使用提供更安全 API 的 CallbackToFutureAdapter

版本 1.0.0-alpha03

2018 年 12 月 17 日

androidx.concurrent:concurrent-futures 1.0.0-alpha03 已发布。

新功能

  • 引入了 CallbackToFutureAdapter。它是一种新的、更安全的 API,用于将回调驱动的 API 封装到 ListenableFuture 中。建议优先使用它而不是 ResolvableFuture