Параллельно

Перемещайте задачи из основного потока с помощью сопрограмм и воспользуйтесь преимуществами ListenableFuture.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
11 декабря 2024 г. 1.2.0 - - 1.3.0-альфа01

Объявление зависимостей

Чтобы добавить зависимость от Futures, вы должны добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

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

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

Котлин

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-альфа01

11 декабря 2024 г.

Выпущены androidx.concurrent:concurrent-futures:1.3.0-alpha01 и androidx.concurrent:concurrent-futures-ktx:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит эти коммиты .

Исправления ошибок

  • Эта библиотека теперь использует аннотации NULL NULL JSpecify , которые являются типизированными. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode ( I0faf4 , b/326456246 )

Версия 1.2

Версия 1.2.0

12 июня 2024 г.

Выпущены androidx.concurrent:concurrent-futures:1.2.0 и androidx.concurrent:concurrent-futures-ktx:1.2.0 . Версия 1.2.0 содержит эти коммиты .

Важные изменения с версии 1.1.0

  • Добавлен SuspendToFutureAdapter для перевода вызова приостанавливающего API в ListenableFuture .

Версия 1.2.0-rc01

29 мая 2024 г.

Выпущены androidx.concurrent:concurrent-futures:1.2.0-rc01 и androidx.concurrent:concurrent-futures-ktx:1.2.0-rc01 . Версия 1.2.0-rc01 содержит эти коммиты .

Версия 1.2.0-бета01

14 мая 2024 г.

Выпущены androidx.concurrent:concurrent-futures:1.2.0-beta01 и androidx.concurrent:concurrent-futures-ktx:1.2.0-beta01 . Версия 1.2.0-beta01 содержит эти коммиты .

Версия 1.2.0-альфа03

20 марта 2024 г.

Выпущены androidx.concurrent:concurrent-futures:1.2.0-alpha03 и androidx.concurrent:concurrent-futures-ktx:1.2.0-alpha03 . Версия 1.2.0-alpha03 содержит эти коммиты .

Исправления ошибок

  • Исправлена ​​ошибка обработки ошибок, когда задача SuspendToFutureAdapter выдает исключение. ( б/327629504 )

Версия 1.2.0-альфа02

9 августа 2023 г.

Выпущены androidx.concurrent:concurrent-futures:1.2.0-alpha02 и androidx.concurrent:concurrent-futures-ktx:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит эти коммиты.

Изменения API

  • Добавлен SuspendToFutureAdapter для написания мостов suspend- ListenableFuture ( Ia8a66 ).

Версия 1.2.0-альфа01

22 февраля 2023 г.

Выпущены androidx.concurrent:concurrent-futures:1.2.0-alpha01 и androidx.concurrent:concurrent-futures-ktx:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит эти коммиты.

Изменения API

  • ResolvableFuture теперь имеет правильные аннотации об отсутствии значений в своих методах. ( I2339f , б / 236474470 )

Версия 1.1.0

Версия 1.1.0

19 августа 2020 г.

androidx.concurrent:concurrent-futures:1.1.0 и androidx.concurrent:concurrent-futures-ktx:1.1.0 выпущены без изменений с версии 1.1.0-rc01 . Версия 1.1.0 содержит эти коммиты.

Основные изменения с версии 1.0.0

  • 1.1.0 представлены расширения Kotlin, помогающие конвертировать между ListenableFuture и сопрограммами Kotlin, которые теперь доступны с androidx.concurrent:concurrent-futures-ktx:1.1.0 . Этот артефакт предназначен для использования с com.google.guava:listenablefuture а не с полной библиотекой Guava, которая представляет собой облегченную замену Guava, содержащую только ListenableFuture. Пользователям полной библиотеки Guava вместо этого следует использовать официальные расширения ListenableFuture из kotlinx.coroutines.kotlinx-coroutines-guava .

Версия 1.1.0-rc01

22 июля 2020 г.

androidx.concurrent:concurrent-futures:1.1.0-rc01 и androidx.concurrent:concurrent-futures-ktx:1.1.0-rc01 выпущены без изменений с 1.1.0-beta01 . Версия 1.1.0-rc01 содержит эти коммиты.

Версия 1.1.0-бета01

24 июня 2020 г.

androidx.concurrent:concurrent-futures:1.1.0-beta01 и androidx.concurrent:concurrent-futures-ktx:1.1.0-beta01 выпущены без изменений с 1.1.0-alpha01 . Версия 1.1.0-beta01 содержит эти коммиты.

Версия 1.1.0-альфа01

18 декабря 2019 г.

Выпущены androidx.concurrent:concurrent-futures:1.1.0-alpha01 и androidx.concurrent:concurrent-futures-ktx:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты . Это первый выпуск androidx.concurrent:concurrent-futures-ktx .

Новые возможности

  • Расширения Kotlin, помогающие конвертировать ListenableFuture и Kotlin Coroutines, теперь доступны в concurrent-futures-ktx . Этот артефакт предназначен для использования с com.google.guava:listenablefuture а не с полной библиотекой Guava, которая представляет собой облегченную замену Guava, содержащую только ListenableFuture . Пользователям полной библиотеки Guava вместо этого следует использовать официальные расширения ListenableFuture из kotlinx.coroutines.kotlinx-coroutines-guava .

Изменения API

  • Добавляет приостанавливающее расширение ListenableFuture.await() , которое преобразует ListenableFuture в сопрограмму Kotlin.

Версия 1.0.0

Версия 1.0.0

9 октября 2019 г.

Выпущен androidx.concurrent:concurrent-futures:1.0.0 . Версия 1.0.0 содержит эти коммиты .

Важные особенности версии 1.0.0

androidx.concurrent:concurrent-futures:1.0.0 предоставляет класс CallbackToFutureAdapter , минималистическую утилиту, которая позволяет обертывать код на основе обратного вызова и возвращать экземпляры ListenableFuture . Это полезно для библиотек, которые хотели бы предоставлять асинхронные операции в своих Java API более элегантным способом, чем пользовательские обратные вызовы, но не выполняют достаточную тяжелую многопоточность, чтобы зависеть от полной guava или rx java из-за проблем с размером библиотеки. .

Версия 1.0.0-rc01

7 августа 2019 г.

androidx.concurrent:concurrent-futures:1.0.0-rc01 выпущен без изменений по сравнению с 1.0.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Concurrent-ListenableFuture Версия 1.0.0-beta01

30 мая 2019 г.

Выпущены androidx.concurrent:concurrent-listenablefuture:1.0.0-beta01 и androidx.concurrent:concurrent-listenablefuture-callback:1.0.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Эти библиотеки предоставляют автономный эквивалент интерфейса ListenableFuture Guava и адаптер для преобразования обратных вызовов.

Ранее выпущенный артефакт androidx.concurrent:concurrent-futures , который предоставлял аналогичный адаптер и включал артефакт com.google.guava:listenablefuture , может быть проблематичным для разработчиков, использующих цепочки инструментов, такие как Android Gradle Plugin 3.4.0, с строгое соответствие разрешения зависимостей. Разработчикам, которые не полагаются на полную библиотеку Guava, рекомендуется переключиться на androidx.concurrent:concurrent-listenablefuture-callback .

Версия 1.0.0-бета01

7 мая 2019 г.

Выпущен androidx.concurrent:concurrent-futures:1.0.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Изменения API

  • ResolvableFuture и AbstractResolvableFuture были скрыты от общедоступного API в пользу CallbackToFutureAdapter , который обеспечивает более безопасный API.

Версия 1.0.0-альфа03

17 декабря 2018 г.

androidx.concurrent:concurrent-futures 1.0.0-alpha03 выпущен.

Новые возможности

  • Был представлен CallbackToFutureAdapter . Это новый, более безопасный API для переноса API, управляемого обратным вызовом, в ListenableFuture . Предпочитайте его использованию ResolvableFuture .