Активность

Получите доступ к компонуемым API, созданным на основе Activity.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-версия Альфа-релиз
27 августа 2025 г. 1.10.1 1.11.0-rc01 - 1.12.0-альфа07

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

Чтобы добавить зависимость от 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-альфа07

27 августа 2025 г.

Выпущены androidx.activity:activity:1.12.0-alpha07 , androidx.activity:activity-compose:1.12.0-alpha07 и androidx.activity:activity-ktx:1.12.0-alpha07 . Версия 1.12.0-alpha07 содержит эти коммиты .

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

  • Исправлена ​​проблема с EdgeToEdge в API 35, из-за которой невидимые представления вызывали неожиданные вставки измерений. ( If49ff )

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

Версия 1.12.0-альфа06

13 августа 2025 г.

Выпущены androidx.activity:activity:1.12.0-alpha06 , androidx.activity:activity-compose:1.12.0-alpha06 и androidx.activity:activity-ktx:1.12.0-alpha06 . Версия 1.12.0-alpha06 содержит эти коммиты .

Обновление MinSdk

Обновления документации

  • Обновлены KDocs для PredictiveBackHandler с целью выявления известной проблемы синхронизации, при которой он может обрабатывать жест в том же кадре, в котором он отключен. ( I5be5c , b/431534103 )
  • Обновлены KDocs для BackHandler и PredictiveBackHandler , чтобы явно указать поведение «последний составленный выигрывает», а также рекомендовать безусловное составление с enabled флагом. ( I7ab94 )

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

Версия 1.12.0-альфа05

30 июля 2025 г.

Выпущены androidx.activity:activity:1.12.0-alpha05 , androidx.activity:activity-compose:1.12.0-alpha05 и androidx.activity:activity-ktx:1.12.0-alpha05 . Версия 1.12.0-alpha05 содержит эти коммиты .

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

Версия 1.12.0-альфа04

2 июля 2025 г.

Выпущены androidx.activity:activity:1.12.0-alpha04 , androidx.activity:activity-compose:1.12.0-alpha04 и androidx.activity:activity-ktx:1.12.0-alpha04 . Версия 1.12.0-alpha04 содержит эти коммиты .

Изменения зависимости

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

18 июня 2025 г.

Выпущены androidx.activity:activity:1.12.0-alpha03 , androidx.activity:activity-compose:1.12.0-alpha03 и androidx.activity:activity-ktx:1.12.0-alpha03 . Версия 1.12.0-alpha03 содержит эти коммиты .

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

  • OnBackPressedDispatcher и NavigationEventDispatcher теперь инициализируются лениво в ComponentActivity . ( I710e6 )

  • Исправлены проблемы с OnBackPressedDistpatcher , которые вызывали следующее:

    • Только последний диспетчер OnBackPressedCallback был добавлен к уведомлению о своем включенном состоянии ( b/418715930 ).
    • OnBackPressedDispatcher удаляет неправильный обратный вызов при использовании функции addCallback , которая принимает жизненный цикл. ( b/422714753 )
    • OnBackPressedDispatcher.remove() не удаляет все экземпляры зарегистрированного OnBackPressedCallback . ( b/423024414 )

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

4 июня 2025 г.

Выпущены 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 содержит эти коммиты .

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

  • Начиная с NavigationEvent 1.0.0-alpha02 : исправлено исключение ConcurrentModificationException , которое могло возникнуть при вызове NavigationEventCallback.remove() из-за одновременного изменения внутреннего списка закрываемых объектов. ( I63066 )

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

20 мая 2025 г.

Выпущены 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 интегрированы с NavigationEvent 1.0.0-alpha01 через API NavigationEventDispatcherOwner . Теперь вы можете получить 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

23 апреля 2025 г.

Выпущены 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

9 апреля 2025 г.

Выпущены 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-альфа02

26 марта 2025 г.

Выпущены 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

  • Интегрированы новые EDGE_NONE и frameTimeMillis из Android 16 Beta03 в BackEventCompat , предоставляемый функциями handleOnBackStarted и handleOnBackProgressed класса OnBackPressedCallback .

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

  • Activity теперь скомпилирован с API 36. ( I510e8 , b/301910674 )

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

12 марта 2025 г.

Выпущены 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 содержит эти коммиты .

Новые функции

  • Добавлен API MediaCapabilities в PickVisualMediaRequest , позволяющий приложениям указывать свои медиавозможности, такие как поддерживаемые типы HDR. ( Ic3ee7 )

Версия 1.10

Версия 1.10.1

26 февраля 2025 г.

Выпущены androidx.activity:activity:1.10.1 , androidx.activity:activity-compose:1.10.1 и androidx.activity:activity-ktx:1.10.1 . Версия 1.10.1 содержит эти коммиты .

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

  • ViewTree OnBackPressedDispatcherOwners и FullyDrawnReporterOwners теперь можно разрешать через непересекающиеся родительские элементы представления, например, ViewOverlay . Подробнее о непересекающихся родительских элементах представления см. в примечаниях к выпуску ядра или в документации по ViewTree.setViewTreeDisjointParent . ( Ie7750 ).

Версия 1.10.0

15 января 2025 г.

Выпущены 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 и PickMultipleVisualMedia Activity Result, которые запускают средство выбора фотографий, больше не делегируют управление напрямую сервисам Google Play, если системное средство выбора фотографий недоступно, а используют общедоступное действие ACTION_SYSTEM_FALLBACK_PICK_IMAGES и связанные с ним дополнения для предоставления единообразного опыта использования средства выбора фотографий для OEM-производителей и системных приложений в качестве запасного варианта.
  • Новая локальная композиция LocalActivity , которая предоставляет Activity для текущей области действия, устраняя необходимость для разработчиков получать Activity из LocalContext .

Версия 1.10.0-rc01

11 декабря 2024 г.

Выпущены 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 содержит эти коммиты .

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

  • Исправлена ​​ошибка, из-за которой изменение состояния «включено» при активном PredictiveBackHandler приводило к немедленному прерыванию обратного вызова. Теперь текущий обратный вызов будет завершен независимо от изменения состояния «включено». ( Ib8719 )

Версия 1.10.0-beta01

13 ноября 2024 г.

androidx.activity:activity:1.10.0-beta01 , androidx.activity:activity-compose:1.10.0-beta01 и androidx.activity:activity-ktx:1.10.0-beta01 выпущены без изменений с момента последней альфа-версии. Версия 1.10.0-beta01 содержит следующие коммиты .

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

30 октября 2024 г.

Выпущены 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 для текущей области действия, устраняя необходимость в получении Activity из LocalContext . Также добавлено новое правило линтинга, которое проверяет, некорректно ли LocalContext преобразуется в Activity . ( I7746a , b/283009666 )

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

  • Начиная с Activity 1.9.3 : PredictiveBackHandler больше не будет активировать свой обратный вызов после отключения обработчика. Это исправит проблему, из-за которой NavHost из Navigation Compose вызывал исключение IndexOutOfBoundsException . ( I3f75e , b/365027664 , b/340202286 )

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

  • Activity Compose теперь зависит от Compose Runtime 1.7.0 ( I7746a , b/283009666 )

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

4 сентября 2024 г.

Выпущены 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 и PickMultipleVisualMedia Activity Result, запускающие функцию выбора фотографий, больше не делегируют управление сервисам Google Play напрямую, если системный инструмент выбора фотографий недоступен. Вместо этого используется публичное действие ACTION_SYSTEM_FALLBACK_PICK_IMAGES и связанные с ним дополнительные функции для обеспечения единообразного использования функции выбора фотографий производителями оборудования и системными приложениями в качестве резервного варианта. Это не должно повлиять на пользовательский интерфейс устройств с последней версией сервисов Google Play. ( I3513d )

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

  • Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок с использованием AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье ( I9496c , b/345472586 ).
  • Начиная с Activity 1.9.2 : исправлена ​​проблема, из-за которой API Activity Compose PredictiveBackHandler продолжал обрабатывать системный жест «назад» на кадре, в котором он был отключен. Это могло привести к тому, что библиотеки, такие как Navigation Compose, обрабатывали жест «назад» даже при пустом стеке «назад», выдавая исключение IndexOutOfBoundsException . ( Ie3301 , b/340202286 )
  • Из Activity 1.9.1 : Исправлена ​​проблема с PredictiveBackHandler , из-за которой после выполнения системного возврата попытка выполнить onBackPressed из OnBackPressedDispatcher приводила к ошибке. ( I5f1f8 )

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

26 июня 2024 г.

Выпущены androidx.activity:activity:1.10.0-alpha01 , androidx.activity:activity-compose:1.10.0-alpha01 и androidx.activity:activity-ktx:1.10.0-alpha01 . Эта версия разрабатывается во внутренней ветке.

Новые функции

  • Добавлена ​​поддержка новых функций PhotoPicker , представленных в Android V, включая возможность выбирать изображения по порядку и выбирать, какая вкладка (альбомы или изображения) должна быть изначально видна.

Версия 1.9

Версия 1.9.3

16 октября 2024 г.

Выпущены androidx.activity:activity:1.9.3 , androidx.activity:activity-compose:1.9.3 и androidx.activity:activity-ktx:1.9.3 . Версия 1.9.3 содержит эти коммиты .

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

  • PredictiveBackHandler больше не будет активировать свой обратный вызов после отключения обработчика. Это исправит проблему, из-за которой NavHost из Navigation Compose вызывал исключение IndexOutOfBoundsException . ( I3f75e , b/340202286 )

Версия 1.9.2

4 сентября 2024 г.

Выпущены androidx.activity:activity:1.9.2 , androidx.activity:activity-compose:1.9.2 и androidx.activity:activity-ktx:1.9.2 . Версия 1.9.2 содержит следующие lthcocommits .

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

  • Исправлена ​​ошибка, из-за которой API Activity Compose PredictiveBackHandler продолжал обрабатывать системный жест «Назад» на кадре, в котором он был отключен. Это могло привести к тому, что библиотеки, такие как Navigation Compose, обрабатывали жест «Назад» даже при пустом стеке «Назад», выдавая исключение IndexOutOfBoundsException . ( Ie3301 , b/340202286 )

Версия 1.9.1

24 июля 2024 г.

Выпущены androidx.activity:activity:1.9.1 , androidx.activity:activity-compose:1.9.1 и androidx.activity:activity-ktx:1.9.1 . Версия 1.9.1 содержит эти коммиты .

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

  • Исправлена ​​проблема с PredictiveBackHandler , из-за которой после выполнения системного возврата попытка выполнить onBackPressed из OnBackPressedDispatcher приводила к ошибке. ( I5f1f8 )

Версия 1.9.0

17 апреля 2024 г.

Выпущены 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 .
  • API OnBackPressedCallback , BackHandler и PredictiveBackHandler теперь выдают предупреждения при вызове onBackPressedDispatcher.onBackPressed() при обработке обратных событий, так как это всегда приводит к прерыванию предиктивной обратной анимации . Подробнее см. в руководстве по лучшим практикам .
  • Остальные API Activity были переписаны на Kotlin, а все расширения, ранее доступные в activity-ktx были перенесены в activity . activity-ktx теперь полностью пуст.
    • В рамках переноса ActivityResultLauncher на Kotlin метод getContract теперь является абстрактным свойством Kotlin. Это изменение совместимо с бинарным кодом, но нарушает исходный код, если ваша реализация ActivityResultLauncher написана на Kotlin.

Версия 1.9.0-rc01

3 апреля 2024 г.

Выпущены 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 содержит эти коммиты .

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

Версия 1.9.0-beta01

20 марта 2024 г.

Выпущены 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 содержит эти коммиты .

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

  • Исправлено снижение производительности при запуске Activity, появившееся в Activity 1.9.0-alpha02 и вызванное вызовом OnBackPressedDispatcher в процессе создания Activity. ( Ie75e3 )

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

7 февраля 2024 г.

Выпущены 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 содержит эти коммиты.

Предупреждение о ворсе

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

  • Если событие «назад» отправляется из системы, запущенной во время уже выполняющегося прогнозируемого жеста «назад», то текущий выполняющийся прогнозируемый жест «назад» отменяется, а новое событие «назад» вступает во владение, чтобы начать новый прогнозируемый жест «назад». ( I3482e )
  • Исправлен сбой при первом обращении к onBackPressedDispatcher из ComponentActivity из фонового потока. Теперь доступ к onBackPressedDispatcher безопасен в любом потоке. ( I79955 )

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

24 января 2024 г.

Выпущены 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. Это гарантирует, что возможность значения NULL для дженериков в контракте, переданном в register будет корректно передана в возвращаемый вам ActivityResultLauncher . ( I121f0 )
  • ActivityResult переписан на Kotlin. Расширения ActivityResult Kotlin, поддерживающие деструктуризацию в поля resultCode и data , перенесены из activity-ktx в activity . ( I0565a )
  • Расширения Kotlin by viewModels() для ComponentActivity и trackPipAnimationHintView перенесены из activity-ktx в activity . Артефакт activity-ktx теперь полностью пуст. ( I0a444 )

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

  • API enableEdgeToEdge теперь рисует вокруг любых вырезов на дисплее. ( a3644b , b/311173461 )
  • Начиная с Activity 1.8.2 : исправлено дополнительное значение, передаваемое в контракт действия «Выбор фотографий» ACTION_SYSTEM_FALLBACK_PICK_IMAGES , теперь оно корректно передает ключ EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX вместо использования дополнительного значения с ключом "com.google.android.gms.provider.extra.PICK_IMAGES_MAX" . Если вы являетесь OEM-производителем, реализующим системный резервный режим выбора фотографий, настоятельно рекомендуется поддерживать оба дополнительных значения для обеспечения максимальной совместимости. ( I96a00 )

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

29 ноября 2023 г.

Выпущены 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 теперь имеет тот же минимальный уровень API 19, что и контракт PickVisualMedia Activity Result. ( Id6e21 )

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

Версия 1.8

Версия 1.8.2

13 декабря 2023 г.

Выпущены androidx.activity:activity:1.8.2 , androidx.activity:activity-compose:1.8.2 и androidx.activity:activity-ktx:1.8.2 . Версия 1.8.2 содержит эти коммиты.

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

  • Исправлен дополнительный параметр, передаваемый в контракт действия «Фотовыбор» ACTION_SYSTEM_FALLBACK_PICK_IMAGES , для корректной передачи ключа EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX вместо использования дополнительного параметра с ключом "com.google.android.gms.provider.extra.PICK_IMAGES_MAX" . Если вы являетесь OEM-производителем, реализующим системный резервный фотовыбор, настоятельно рекомендуется поддерживать оба дополнительных параметра для обеспечения максимальной совместимости. ( I96a00 )

Версия 1.8.1

15 ноября 2023 г.

Выпущены androidx.activity:activity:1.8.1 , androidx.activity:activity-compose:1.8.1 и androidx.activity:activity-ktx:1.8.1 . Версия 1.8.1 содержит эти коммиты.

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

  • OnBackPressedDispatcher теперь продолжает отправлять запросы на правильный OnBackPressedCallback даже после добавления нового OnBackPressedCallback во время обработки жеста «назад». ( Id0ff6 )

Версия 1.8.0

4 октября 2023 г.

Выпущены 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() действовавшему при завершении жеста «назад». Это также входит в составной объект PredictiveBackHandler для обработки событий предиктивного возврата в Activity Compose. Он предоставляет поток объектов BackEventCompat, которые необходимо собрать в предоставленном вами лямб-объекте приостановки:
  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

20 сентября 2023 г.

Выпущены 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

6 сентября 2023 г.

Выпущены 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-альфа07

23 августа 2023 г.

Выпущены 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 добавил новый компонуемый объект PredictiveBackHandler для обработки событий предиктивного жеста «Назад». Он предоставляет Flow объектов BackEventCompat , которые необходимо собрать в предоставляемом вами лямб-объекте приостановки:

    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 )

  • onBackPressedDispatcher в ComponentActivity теперь инициализируется лениво, поэтому он создается только при необходимости. ( I0bf8e )

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

  • ComponentActivity больше не будет отображать NPE на Android 13, если он получает обратный вызов onBackPressed() , а Activity уже была DESTROYED . ( Idb055 , b/291869278 )
  • Удалены случаи использования экспериментального API isAtLeastU() ( Ie9117 , b/289269026 )

Версия 1.8.0-альфа06

21 июня 2023 г.

Выпущены 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 в API enableEdgeToEdge теперь можно переопределить лямбда-параметр detectDarkMode , чтобы предоставить пользовательскую логику для обнаружения ночного режима. ( aosp/2546393 , b/278263793 )

Версия 1.8.0-альфа05

7 июня 2023 г.

Выпущены 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 .
  • Критическое изменение: методы handleOnBackStarted и handleOnBackProgressed объекта OnBackPressedCallback теперь получают экземпляр androidx.activity.BackEventCompat вместо фреймворкового класса android.window.BackEvent . Аналогичные API @VisibleForTesting для OnBackPressedDispatcher также были обновлены.
  • Конструктор OnBackPressedDispatcher теперь принимает необязательный экземпляр Consumer<Boolean> , который позволяет владельцам диспетчера получать обратный вызов всякий раз, когда количество включенных обратных вызовов изменяется с нуля на ненулевое значение или наоборот.

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

Версия 1.8.0-альфа04

10 мая 2023 г.

Выпущены androidx.activity:activity:1.8.0-alpha04 , androidx.activity:activity-compose:1.8.0-alpha04 и androidx.activity:activity-ktx:1.8.0-alpha04 . Они были выпущены из внутренней ветки.

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

  • Начиная с Activity 1.7.1 : - ReportFullyDrawExecuter больше не дает утечек при использовании ComponentActivity с ActivityScenario . ( Id2ff2 , b/277434271 )

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

12 апреля 2023 г.

Выпущены 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 теперь содержат открытый API initViewTreeOwners() который можно использовать для инициализации всех владельцев дерева представлений перед настройкой представления содержимого. ( Ibdce0 , b/261314581 )

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

  • Исправлена ​​ошибка, из-за которой фрагменты некорректно делали MenuHosts недействительными, что приводило к неожиданному поведению других меню в Activity. ( I9404e , b/244336571 )

Другие изменения

  • ActivityResultRegister теперь использует Kotlin Random вместо Java. ( I4d98f , b/272096025 )

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

8 марта 2023 г.

Выпущены версии androidx.activity:activity:1.8.0-alpha02 , androidx.activity:activity-compose:1.8.0-alpha02 и androidx.activity:activity-ktx:1.8.0-alpha02 . Разработаны во внутренней ветке.

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

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

8 февраля 2023 г.

Выпущены 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

24 мая 2023 г.

Выпущены androidx.activity:activity:1.7.2 , androidx.activity:activity-compose:1.7.2 и androidx.activity:activity-ktx:1.7.2 . Версия 1.7.2 содержит эти коммиты.

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

  • Исправлен сбой ReportDrawn при выходе за пределы экрана до вызова report . ( Ic46f1 , b/260506820 )

Версия 1.7.1

19 апреля 2023 г.

Выпущены androidx.activity:activity:1.7.1 , androidx.activity:activity-compose:1.7.1 и androidx.activity:activity-ktx:1.7.1 . Версия 1.7.1 содержит эти коммиты.

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

  • ReportFullyDrawExecuter больше не допускает утечек при использовании ComponentActivity с ActivityScenario . ( Id2ff2 , b/277434271 )

Версия 1.7.0

22 марта 2023 г.

Выпущены 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

  • Контракты действий Photo Picker в PickVisualMedia и PickMultipleVisualMedia обновлены и теперь содержат дополнительный резервный вариант на случай недоступности MediaStore.ACTION_PICK_IMAGES . Это позволяет OEM-производителям и системным приложениям, таким как сервисы Google Play, обеспечивать единообразие работы Photo Picker на более широком спектре устройств Android и уровней API, реализуя действие fallback . Photo Picker будет использовать этот резервный вариант, если он доступен, прежде чем переходить к использованию Intent.ACTION_OPEN_DOCUMENT , который по-прежнему поддерживает все устройства API 19 и более поздних версий.
  • ComponentDialog теперь реализует SavedStateRegistryOwner и имеет доступ к своему SavedStateRegistry , а также устанавливает SavedStateRegistryOwner для своего ViewTree . Теперь можно использовать Jetpack Compose в ComponentDialog , поскольку он соответствует требованиям как LifecycleOwner , так и SavedStateRegistryOwner прикреплённых к окну через API ViewTree .
  • IntentSenderRequest.Builder.setFlags() теперь позволяет устанавливать несколько флагов из Intent , а не только один флаг.

Конвертация Kotlin

Ряд классов Activity были преобразованы в Kotlin. Все преобразованные классы сохраняют бинарную совместимость с предыдущими версиями. В следующих классах есть изменения , несовместимые с исходным кодом для классов, написанных на Kotlin: ActivityResultRegistryOwner и OnBackPressedDispatcherOwner .

В таблице ниже представлены исходные преобразования для новой версии Activity:

Задание 1.5 Задание 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val onBackPressedDispatcher = onBackPressedDispatcher

Эти классы также были преобразованы в Kotlin, но остаются совместимыми с исходным кодом: ContextAware , ContextAwareHelper , OnContextAvailableListener , IntentSenderRequest и OnBackPressedDispatcher

API FullyDrawnReporter

ComponentActivity теперь предоставляет экземпляр FullyDrawnReporter , который позволяет нескольким компонентам сообщать о своей готовности к взаимодействию. ComponentActivity будет дожидаться завершения работы всех компонентов, прежде чем вызвать reportFullyDrawn() от вашего имени. Эти API берут на себя все требования по синхронизации и не требуют вызова в рамках вызова onDraw .

Рекомендуется использовать эти API для обеспечения:

  • Передача сигнала среде выполнения Android о завершении запуска для обеспечения того, чтобы весь код, выполняемый во время многокадровой последовательности запуска, был включен и получил приоритет для фоновой компиляции.
  • Сигнализация Macrobenchmark и Play Vitals, когда ваше приложение следует считать полностью готовым для показателей запуска, чтобы вы могли отслеживать производительность.

Для более удобного использования FullyDrawnReporter из отдельных компонуемых объектов были добавлены три API-интерфейса Activity Compose:

  • ReportDrawn указывает на то, что ваш компонуемый объект сразу готов к взаимодействию.
  • ReportDrawnWhen принимает предикат (например, list.count > 0 ), чтобы указать, когда ваш компонуемый объект готов к взаимодействию.
  • ReportDrawnAfter использует метод приостановки, который по завершении указывает на готовность к взаимодействию.

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

Версия 1.7.0-rc01

8 марта 2023 г.

Выпущены 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 содержит эти коммиты.

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

Версия 1.7.0-beta02

22 февраля 2023 г.

Выпущены 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 и PickMultipleVisualMedia в качестве резервного варианта на случай недоступности MediaStore.ACTION_PICK_IMAGES , теперь являются публичными константами, обеспечивающими стабильность API для OEM-производителей и системных приложений, которым требуется единообразный интерфейс выбора фотографий. Реализация этого резервного варианта пока ограничена только системными приложениями. ( Icd320 )

Версия 1.7.0-beta01

8 февраля 2023 г.

Выпущены 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 )

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

  • Резервный вариант для PickVisualMedia в случае недоступности фреймворка Photo Picker теперь корректно ограничивает обработку приложениями, установленными в системном образе устройства. ( 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-альфа04

25 января 2023 г.

Выпущены 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 и PickMultipleVisualMedia Activity Result теперь будут использовать функцию выбора фотографий, предоставляемую сервисами Google Play, если она доступна, в случаях, когда система Android (например, MediaStore.ACTION_PICK_IMAGES ) недоступна. API isPhotoPickerAvailable() , который определяет только функцию выбора фотографий, предоставляемую системой Android, устарел. Рекомендуется использовать новый API isPhotoPickerAvailable(Context) , который возвращает значение, если доступна одна из функций выбора фотографий. ( I55be6 )

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

11 января 2023 г.

Выпущены 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 и устанавливает SavedStateRegistryOwner для своего ViewTree. Теперь можно использовать Jetpack Compose внутри ComponentDialog , поскольку он соответствует как LifecycleOwner , так и SavedStateRegistryOwner прикрепленным к окну через требования API ViewTree. ( Idca17 , I73468 б/261162296 )

Изменения API

  • Добавлен компонуемый объект ReportDrawn , который немедленно помечает активность как готовую к вызову reportFullyDrawn . ( Ic5b14 , б/259687964 )

Котлин-преобразования

  • Классы ActvitiyResultCallback и OnBackPressedCallback были преобразованы в Kotlin с сохранением совместимости исходного кода и двоичного кода. ( Ifc5e5 , Ide1b0 , b/257291701 )

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

24 октября 2022 г.

Выпущены 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 содержит эти коммиты.

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

  • Из действия 1.6.1 : исправлена проблема, из-за которой контракт результата действия PickMultipleVisualMedia не запускался на устройствах Android R при использовании значения по умолчанию для maxItems . ( Ие2776 , б/249182130 )

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

5 октября 2022 г.

Выпущены 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 содержит эти коммиты.

API FullyDrawnReporter

ComponentActivity теперь предоставляет экземпляр FullyDrawnReporter , который позволяет нескольким компонентам сообщать, когда они готовы к взаимодействию. ComponentActivity будет ждать завершения работы всех компонентов, прежде чем вызывать reportFullyDrawn() от вашего имени. Эти API отвечают за требования к времени, и их не нужно вызывать как часть вызова onDraw .

Эти API рекомендуется включать:

  • Сигнализация среды выполнения Android после завершения запуска, чтобы гарантировать, что весь код, выполняемый во время многокадровой последовательности запуска, включен и имеет приоритет для фоновой компиляции.
  • Сигнализация Macrobenchmark и Play Vitals, когда ваше приложение следует считать полностью прорисованным для показателей запуска, чтобы вы могли отслеживать производительность.

Были добавлены два API-интерфейса Activity Compose, чтобы сделать более удобным использование FullyDrawnReporter из отдельных компонуемых объектов:

  • ReportDrawnWhen принимает предикат (т. е. list.count > 0 ), чтобы указать, когда ваш составной объект готов к взаимодействию.
  • ReportDrawnAfter принимает метод приостановки, который по завершении указывает, что вы готовы к взаимодействию.

Версия 1.6.1

Версия 1.6.1

24 октября 2022 г.

androidx.activity:activity:1.6.1 , androidx.activity:activity-compose:1.6.1 и androidx.activity:activity-ktx:1.6.1 выпущены. Версия 1.6.1 содержит эти коммиты.

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

  • Исправлена проблема, из-за которой контракт результата активности PickMultipleVisualMedia не запускался на устройствах Android R при использовании значения по умолчанию для maxItems . ( Ие2776 , б/249182130 )

Версия 1.6.0

Версия 1.6.0

21 сентября 2022 г.

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 для предоставления обратно совместимого контракта, который использует MediaStore.ACTION_PICK_IMAGES , когда средство выбора фотографий доступно, и Intent.ACTION_OPEN_DOCUMENT когда оно недоступно.
  • OnBackInvokedCallback в Android 13 интегрирован в OnBackPressedDispatchers , предоставляемый ComponentActivity и ComponentDialog . Это гарантирует, что все API, созданные на OnBackPressedDispatcher , будут работать при включении прогнозируемого жеста назад .

Версия 1.6.0-rc02

7 сентября 2022 г.

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 содержит эти коммиты.

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

  • OnBackPressedDispatcher теперь регистрирует OnBackInvokedCallback с PRIORITY_DEFAULT вместо PRIORITY_OVERLAY . ( I3901f )
  • Классы, расширяющие ComponentActivity , теперь всегда будут отправлять оба своих обратных вызова onMultiWindowModeChanged() . ( Ic4d85 )
  • ActivityResultRegistry больше не будет возвращать результат в ActivityResultCallback , если вызов launch выдает какое-либо Exception и обратный вызов был зарегистрирован без LifecycleOwner . ( Ia7ff7 , б/238350794 )
  • ComponentActivity теперь правильно отправляет вызовы меню без необходимости вызывать суперфункцию в вашей активности. ( Ie33c5 , б/238057118 )

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

Версия 1.6.0-rc01

24 августа 2022 г.

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 содержит эти коммиты.

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

  • Инициализация OnBackPressedDispatcher больше не будет вызывать ClassVerificationError при использовании версий SDK до 33. ( Ic32e1 )
  • Классы, которые переопределяют обратный вызов onPictureInPictureModeChanged() ComponentActivity , теперь всегда будут отправлять свои обратные вызовы. ( Ib7fdb )

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

10 августа 2022 г.

Выпущены 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

  • Помечены устаревшие методы startActivityForResult и startIntentSenderForResult в ComponentActivity с помощью @NonNull , поскольку передача null всегда приводила к сбою. ( Id2a25 , б/231476082 )

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

  • Из действия 1.5.1 : ActivityResultRegistry больше не будет возвращать результат в ActivityResultCallback , если вызов launch выдает какое-либо Exception и обратный вызов был зарегистрирован без LifecycleOwner . ( Ia7ff7 , б/238350794 )
  • Из действия 1.5.1 : ComponentActivity теперь правильно отправляет вызовы меню для переопределений onPrepareOptionMenu() , onCreateOptionsMenu() и onOptionsItemSelected() без необходимости вызывать суперфункцию. ( Ie33c5 , б/238057118 )

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

Версия 1.6.0-альфа05

15 июня 2022 г.

Выпущены 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.

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

  • Исправлен сбой на старых устройствах при проверке расширения SDK для PickVisualMedia ActivityResultContract , теперь он должен работать с ACTION_OPEN_DOCUMENT на устройствах под управлением Android 10 и более ранних версий.

Версия 1.6.0-альфа04

18 мая 2022 г.

Выпущены androidx.activity:activity:1.6.0-alpha04 и androidx.activity:activity-ktx:1.6.0-alpha04 .

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

  • Исправлена ​​ошибка в PickVisualMediaRequest , из-за которой попытка создать запрос через Builder или функцию Kotlin верхнего уровня приводила к переполнению стека.
  • OnBackInvokedCallback интегрирован в Android 13 Dev Beta 2 в OnBackPressedDispatcher , предоставленный ComponentDialog . Это гарантирует, что все API, созданные на OnBackPressedDispatcher будут работать при включении прогнозируемого жеста назад .

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

27 апреля 2022 г.

Выпущены 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 для предоставления обратно совместимого контракта, который использует MediaStore.ACTION_PICK_IMAGES , когда средство выбора фотографий доступно, и Intent.ACTION_OPEN_DOCUMENT когда оно недоступно.
  • OnBackInvokedCallback в Android 13 Dev Beta 1 интегрирован в OnBackPressedDispatcher , предоставленный ComponentActivity . Это гарантирует, что все API, созданные на OnBackPressedDispatcher будут работать при включении прогнозируемого жеста назад .

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

23 марта 2022 г.

Выпущены 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

27 июля 2022 г.

androidx.activity:activity:1.5.1 , androidx.activity:activity-compose:1.5.1 и androidx.activity:activity-ktx:1.5.1 выпущены. Версия 1.5.1 содержит эти коммиты.

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

  • ActivityResultRegistry больше не будет возвращать результат в ActivityResultCallback , если вызов launch() генерирует какое-либо Exception и обратный вызов был зарегистрирован без LifecycleOwner . ( Ia7ff7 , б/238350794 )

  • ComponentActivity теперь правильно отправляет вызовы меню в переопределения onPrepareOptionMenu() , onCreateOptionsMenu() и onOptionsItemSelected() без необходимости вызова суперфункции. ( Ie33c5 , б/238057118 )

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

Версия 1.5.0

Версия 1.5.0

29 июня 2022 г.

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

  • ComponentDialogComponentDialog — это подкласс Dialog , который включает OnBackPressedDispatcher , который будет вызываться при нажатии кнопки «Назад» в системе и отображении диалогового окна. Важно отметить, что этот подкласс также устанавливает ViewTreeOnBackPressedDispatcherOwner , позволяя представлениям использовать общий способ получения правильного диспетчера, независимо от того, существует ли он в ComponentActivity или ComponentDialog .
  • Интерфейсы обратного вызова . ComponentActivity теперь реализует набор модульных интерфейсов обратного вызова, которые можно использовать вместо обратных вызовов Activity . К этим интерфейсам относятся следующие: OnNewIntentProvider , OnConfigurationChangedProvider , OnTrimMemoryProvider , OnPictureInPictureModeChangedProvider , OnMultiWindowModeChangedProvider .
  • Интеграция CreationExtrasComponentActivity теперь имеет возможность предоставлять ViewModelProvider.Factory без сохранения состояния через CreationExtras жизненного цикла 2.5.0 .

Другие изменения

  • Конструктор без параметров для ActivityResultContracts.CreateDocument устарел и заменен новым конструктором, который принимает конкретный тип mime (например, «image/png»), как того требует Intent.ACTION_CREATE_DOCUMENT .

Версия 1.5.0-rc01

11 мая 2022 г.

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

20 апреля 2022 г.

Выпущены 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 содержит эти коммиты.

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

Версия 1.5.0-альфа05

6 апреля 2022 г.

Выпущены 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 содержит эти коммиты.

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

  • Функция onPanelClosed() ComponentActivity теперь также вызывает супер onPanelClosed() , исправляя проблему, из-за которой метод onContextMenuClosed не вызывался. ( Ib6f77 )

Версия 1.5.0-альфа04

23 марта 2022 г.

Выпущены 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 содержит эти коммиты.

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

  • SavedStateViewFactory теперь поддерживает использование CreationExtras , даже если он был инициализирован с помощью SavedStateRegistryOwner . Если указаны дополнительные параметры, инициализированные аргументы игнорируются. ( I6c43b , б/224844583 )

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

23 февраля 2022 г.

Выпущены 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 в действие by viewModels() ( I6a3e6 , b/217600303 ).

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

9 февраля 2022 г.

Выпущены 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-альфа01

26 января 2022 г.

Выпущены 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, представленным как часть Lifecycle 2.5.0-alpha01 . ( Ie7e00 , б/207012584 )
  • Добавлен ComponentDialog , подкласс Dialog , который включает OnBackPressedDispatcher , который будет вызываться при нажатии кнопки возврата системы, когда диалоговое окно видимо. Важно отметить, что этот подкласс также устанавливает ViewTreeOnBackPressedDispatcherOwner , позволяя представлениям использовать общий способ получения правильного диспетчера, независимо от того, существует ли он в ComponentActivity или ComponentDialog . ( I8a1bc )
  • ComponentActivity теперь реализует новый интерфейс OnNewIntentProvider , позволяющий любому компоненту получать эти события. ( Если1f8b )
  • ComponentActivity теперь реализует новый интерфейс OnConfigurationChangedProvider , позволяющий любому компоненту получать эти события. ( Если623b )
  • ComponentActivity теперь реализует новый интерфейс OnTrimMemoryProvider , позволяющий любому компоненту получать эти события. ( Я9295 )

Изменения API

  • Конструктор без параметров для ActivityResultContracts.CreateDocument устарел и заменен новым конструктором, который принимает конкретный тип MIME (например, "image/png" ), как того требует Intent.ACTION_CREATE_DOCUMENT . ( I2bec6 )
  • OnBackPressedDispatcherOwner связанный с представлением, теперь можно получить через ViewTreeOnBackPressedDispatcherOwner , а не полагаться на приведение Context . ( I74685 )

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

  • Исправлен сбой при первом доступе к ViewModel из обратного вызова registerForActivityResult() или обратных вызовов к LifecycleObserver , добавленных как часть init ComponentActivity . ( Ife83f )

Версия 1.4.0

Версия 1.4.0

27 октября 2021 г.

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 . Это позволяет любому компоненту добавлять пункты меню в ActionBar , добавляя экземпляр MenuProvider к действию. При необходимости к каждому MenuProvider можно добавить Lifecycle , который будет автоматически контролировать видимость этих пунктов меню в зависимости от состояния Lifecycle и обрабатывать удаление MenuProvider при уничтожении Lifecycle .
  • Класс ActivityResultContract был переписан на Kotlin, чтобы разработчики, пишущие пользовательские контракты на Kotlin, могли определить правильную допустимость значений NULL для своих классов ввода и вывода.
  • Класс ActivityResultContracts и его контракты были переписаны на Kotlin, чтобы обеспечить правильную возможность обнуления.

Версия 1.4.0-rc01

13 октября 2021 г.

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 содержит эти коммиты.

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

  • ActivityResultRegistry больше не будет возвращать результат в ActivityResultCallback , когда вызов launch выдает какое-либо Exception . ( If4f91 , б/200845664 )

Версия 1.4.0-beta01

29 сентября 2021 г.

Выпущены 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 , из-за которого затем использовался тип вывода List<? extends Uri> при использовании кода языка программирования Java. ( If71de )
  • Открытые константы в классах ActivityResultContracts.StartActivityForResult , ActivityResultContracts.StartIntentSenderForResult и ActivityResultContracts.RequestMultiplePermissions теперь доступны при использовании Kotlin через их теперь общедоступные объекты Companion . ( аосп/1832555 )

Обновления документации

  • Сообщение об устаревании API, которые теперь обрабатываются API-интерфейсами Activity Result , а именно startActivityForResult , startIntentSenderForResult , onActivityResult , requestPermissions и onRequestPermissionsResult , было расширено и содержит более подробную информацию. ( cce80f )

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

15 сентября 2021 г.

Выпущены 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 теперь содержит ошибку запуска LaunchDuringComposition , которая не позволяет вам вызвать метод launch ActivityResultLauncher как часть композиции, поскольку композиция не должна иметь побочных эффектов. Используйте API для обработки побочных эффектов . ( 7c2bbe , б/191347220 )

Изменения API

  • Класс ActivityResultContract был переписан на Kotlin, чтобы разработчики, пишущие пользовательские контракты на Kotlin, могли определить правильную допустимость значений NULL для своих классов ввода и вывода. ( I8a8f5 )
  • Класс ActivityResultContracts и его контракты были переписаны на Kotlin, чтобы обеспечить правильную возможность обнуления. ( I69802 )

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

1 сентября 2021 г.

Выпущены 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 . Это позволяет любому компоненту добавлять пункты меню в ActionBar , добавляя экземпляр MenuProvider в действие. При необходимости к каждому MenuProvider можно добавить Lifecycle , который будет автоматически контролировать видимость этих пунктов меню в зависимости от состояния Lifecycle и обрабатывать удаление MenuProvider при уничтожении Lifecycle . ( 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 теперь будет выдавать исключение IllegalStateException при попытке вызвать launch() для ActivityResultLauncher , который не был зарегистрирован или не был зарегистрирован. ( Ида75д , р/192567522 )

Внешний вклад

  • Спасибо dmitrilc за исправление опечатки в документации ActivityResult . ( #221 )

Версия 1.3.1

Версия 1.3.1

4 августа 2021 г.

androidx.activity:activity:1.3.1 , androidx.activity:activity-compose:1.3.1 и androidx.activity:activity-ktx:1.3.1 выпущены. Версия 1.3.1 содержит эти коммиты.

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

  • Активность теперь зависит от Kotlin 1.5.21 .
  • Действие Compose теперь зависит от Compose 1.0.1 .

Версия 1.3.0

Версия 1.3.0

28 июля 2021 г.

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 для размещения пользовательского интерфейса Jetpack Compose в действии и специальные оболочки Compose для взаимодействия с API-интерфейсами ComponentActivity для обработки кнопки возврата системы и API-интерфейсов результатов действий. Более подробную информацию смотрите в документации .
  • Контракт CaptureVideo . Контракт CaptureVideo ActivityResultContract заменяет устаревший контракт TakeVideo и возвращает логическое значение, обозначающее успех, которое работает во многих приложениях камеры.
  • Отслеживание представления подсказок «Картинка в картинке» — пользователи activity-ktx теперь могут использовать метод расширения trackPipAnimationHintView в Activity для автоматического перестроения PictureInPictureParams с новым положением представления, когда оно меняет положение относительно окна.

Версия 1.3.0-rc02

14 июля 2021 г.

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 содержит эти коммиты.

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

  • Обратные вызовы ActivityResultRegistry теперь правильно сохраняются и восстанавливаются, поэтому обратные вызовы не дублируются в сохраненном состоянии. ( I97816 , р/191893160 )

Версия 1.3.0-rc01

1 июля 2021 г.

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

16 июня 2021 г.

Выпущены 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

2 июня 2021 г.

Выпущены 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-альфа08

18 мая 2021 г.

Выпущены 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 содержит эти коммиты.

Новые функции

  • Новый CaptureVideo ActivityResultContract возвращает логическое значение в ваш ActivityResultCallback , указывая, было ли ваше видео успешно сохранено по данному URI. Это заменяет устаревший контракт TakeVideo , поскольку приложения камеры очень редко поддерживают возврат растрового изображения миниатюры, что делает результат бесполезным. ( Ie21f2 , б/185938070 )
  • Добавлен новый API Activity#setPipAnimationHintView для обновления прямоугольной подсказки источника PipParams при каждом перемещении представления. ( I9063d )

Изменения API

  • Функция rememberLauncherForActivityResult теперь возвращает средство запуска, в котором функция unregister() устарела — регистрация и отмена регистрации средства запуска обрабатываются автоматически с помощью rememberLauncherForActivityResult . ( I2443e )

Совместимость с композицией

  • androidx.activity:activity-compose:1.3.0-alpha08 совместим только с версией Compose 1.0.0-beta07 и выше.

Версия 1.3.0-альфа07

21 апреля 2021 г.

Выпущены 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 содержит эти коммиты.

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

  • rememberLauncherForActivityResult теперь возвращает стабильную ссылку на один и тот же экземпляр ActivityResultLauncher , даже если контракт изменяется из-за рекомпозиции. ( Id2d6d )
  • Использование нестабильных версий фрагментов выше 1.3.0 больше не будет вызывать ложноположительную ошибку lint, говорящую вам использовать 1.3.0 . ( аосп/1670206 , б/184847092 )

Версия 1.3.0-альфа06

7 апреля 2021 г.

Выпущены 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

  • API registerForActivityResult() был переименован в rememberLauncherForActivityResult() , чтобы лучше указать, что возвращаемый ActivityResultLauncher является управляемым объектом, который запоминается от вашего имени. Попытка unregister возвращенного ActivityResultLauncher теперь приведет к ошибке. ( I2bb6d )
  • LocalOnBackPressedDispatcherOwner.current и LocalActivityResultRegistryOwner.current теперь возвращают значение, допускающее значение NULL, чтобы лучше определить, доступно ли оно в текущей композиции. API, которым требуются эти API, такие как BackHandler и rememberLauncherForActivityResult() соответственно, теперь будут выдавать более информативную ошибку, если базовый владелец не найден. NavHost теперь работает, даже если OnBackPressedDispatcherOwner не найден, как это происходит при предварительном просмотре NavHost . ( I7d8b4 )

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

  • BackHandler теперь будет правильно перехватывать обратные нажатия в случае, если действие STOPPED , затем снова STARTED и другие обратные вызовы были добавлены с помощью LifecycleOwner. ( I71de6 , б/182284739 )
  • Использование расширения метода launch() с пользовательским ActivityResultContract , имеющим входные данные Unit , больше не будет вызывать исключение NullPointerException ( I76282 , b/183837954 ).

Версия 1.3.0-альфа05

24 марта 2021 г.

Выпущены 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 содержит эти коммиты.

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

  • Из действия 1.2.2 : исправлена проблема в проверке InvalidFragmentVersionForActivityResult , которая приводила к ложному срабатыванию при использовании фрагмента 1.3.1 или выше. ( I54da1 , б/182388985 )
  • Из действия 1.2.2 : ComponentActivity теперь позволяет избежать исключения ClassNotFoundException при запуске Intent из ActivityResultContract , который ранее содержался как дополнительный в другом Intent . ( Ieff05 , б/182906230 )

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

Версия 1.3.0-альфа04

10 марта 2021 г.

Выпущены 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 содержит эти коммиты.

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

  • Из действия 1.2.1 : RequestMultiplePermissions теперь всегда возвращает результаты для всех запрошенных разрешений, а не только для разрешений, которые ранее не были предоставлены. ( I50bc3 , б/180884668 )
  • Из действия 1.2.1 : ActivityResultRegistry теперь гарантирует, что выполняемые запросы launch() будут возвращать свои результаты, даже если вы unregister() , а затем снова register() с тем же ключом. ( I9ef34 , б/181267562 )
  • Activity Compose больше не добавляет тестовые зависимости в путь к классам среды выполнения. ( Ifd8b3 )
  • Исправлена проблема с BackHandler , из-за которой ранее установленная лямбда onBack все еще использовалась после рекомпозиции. ( 8eb5eb )

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

24 февраля 2021 г.

Выпущены 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 для получения результатов действий внутри составных объектов. ( Я7851 , б/172690553 )

Изменения API

  • LocalOnBackPressedDispatcherOwner теперь имеет функции provides , которые можно использовать с CompositionLocalProvider , заменяя API asProvidableCompositionLocal() . ( I45d24 )

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

10 февраля 2021 г.

Выпущены 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 , которая вызывала исключение NoSuchMethodError: No static method setContent при использовании Compose 1.0.0-alpha12 . Все пользователи Compose должны использовать версию 1.3.0-alpha02 и выше. ( б / 179911234 )

Изменения API

  • API BackHandler можно использовать, чтобы позволить Composable перехватывать кнопку возврата системы. ( I58ed5 , б/172154006 )

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

10 февраля 2021 г.

Выпущены 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 предоставляет специальные помощники Jetpack Compose для API-интерфейсов, специфичных для androidx.activity .
    • 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 . ( б / 179911234 )

Версия 1.2.4

Версия 1.2.4

21 июля 2021 г.

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

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

  • Из действия 1.3.0-rc02 : обратные вызовы ActivityResultRegistry теперь правильно сохраняются и восстанавливаются, поэтому обратные вызовы не дублируются в сохраненном состоянии. ( I97816 , р/191893160 )

Версия 1.2.3

Версия 1.2.3

5 мая 2021 г.

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

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

  • Использование расширения метода launch() с пользовательским ActivityResultContract , имеющим входные данные Unit , больше не будет вызывать исключение NullPointerException ( I76282 , b/183837954 ).
  • Исправлена ложноположительная ошибка проверки, сообщающая вам использовать Fragment 1.3.0 при использовании моментального снимка, альфа-, бета-версии или RC-сборки более новой версии Fragments. ( f4a57e , б/184847092 )

Версия 1.2.2

Версия 1.2.2

24 марта 2021 г.

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

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

  • Исправлена проблема в проверке InvalidFragmentVersionForActivityResult , которая приводила к ложному срабатыванию при использовании фрагмента 1.3.1 или выше. ( I54da1 , б/182388985 )
  • ComponentActivity теперь позволяет избежать ClassNotFoundException при запуске Intent из ActivityResultContract , который ранее содержался как дополнительный в другом Intent . ( Ieff05 , б/182906230 )

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

Версия 1.2.1

Версия 1.2.1

10 марта 2021 г.

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

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

  • RequestMultiplePermissions теперь всегда возвращает результаты для всех запрошенных разрешений, а не только для разрешений, которые ранее не были предоставлены. ( I50bc3 , б/180884668 )
  • ActivityResultRegistry теперь гарантирует, что выполняемые запросы launch() вернут свои результаты, даже если вы unregister() , а затем снова register() с тем же ключом. ( I9ef34 , б/181267562 )

Версия 1.2.0

Версия 1.2.0

10 февраля 2021 г.

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

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

  • API результатов активности : ComponentActivity теперь предоставляет ActivityResultRegistry , который позволяет обрабатывать потоки startActivityForResult() + onActivityResult() , а также requestPermissions() + onRequestPermissionsResult() без переопределения методов в вашей деятельности или фрагменте, обеспечивает повышенную безопасность типов через ActivityResultContract и предоставляет перехватчики для тестирования этих потоков. См. обновленную статью «Получение результата от действия» .
  • ContextAware : ComponentActivity теперь реализует ContextAware , позволяя вам добавить один или несколько экземпляров OnContextAvailableListener , которые получат обратный вызов перед базовым Activity.onCreate() .

    • Приостанавливающее расширение Kotlin withContextAvailable() позволяет запускать блок без приостановки, когда контекст становится доступным, и возвращать результат.
    • Этот API используется FragmentActivity во Fragment 1.3.0 для восстановления состояния FragmentManager . Любые прослушиватели, добавленные в подклассы FragmentActivity , будут запускаться после этого прослушивателя.
    • Этот API используется AppCompatActivity в AppCompat 1.3.0-alpha02 или более поздней версии. Любые прослушиватели, добавленные в подклассы AppCompatActivity , будут запускаться после этого прослушивателя.
  • ViewTree Support : ComponentActivity now supports the ViewTreeLifecycleOwner.get(View) , ViewTreeViewModelStoreOwner.get(View) , and ViewTreeSavedStateRegistryOwner APIs added in Lifecycle 2.3.0 and SavedState 1.1.0 such that it will return the Activity as the LifecycleOwner , ViewModelStoreOwner , and SavedStateRegistryOwner for any Views directly added to the ComponentActivity .

  • reportFullyDrawn() backport - The Activity method of reportFullyDrawn() has been backported in ComponentActivity to work on all API levels, fixing a crash on API 19 and adding tracing for this method for all API levels.

Версия 1.2.0-rc01

16 декабря 2020 г.

androidx.activity:activity:1.2.0-rc01 and androidx.activity:activity-ktx:1.2.0-rc01 are released. Version 1.2.0-rc01 contains these commits.

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

  • The ActivityResultRegistry now always restores the exact state that was saved. ( Idd56b )
  • Add tracing to ComponentActivity.reportFullyDrawn ( Ic7632 )

Внешний вклад

  • ComponentActivity now overrides reportFullyDrawn() , allowing it to be called on all API levels and fixing a crash when calling this method without the appropriate system permission on API 19 devices. Thanks Simon Schiller! ( b/163239764 , #103 )

Версия 1.2.0-beta02

2 декабря 2020 г.

androidx.activity:activity:1.2.0-beta02 and androidx.activity:activity-ktx:1.2.0-beta02 are released. Version 1.2.0-beta02 contains these commits.

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

  • Fixed an issue where the Activity Result API would not wait for the Lifecycle to be STARTED before delivering results when registered with a Lifecycle . ( I109ea )

Внешний вклад

  • Updated the documentation for launch() to explicitly call out that it can throw an ActivityNotFoundException . Thanks Michał Zieliński! ( aosp/1493580 )

Версия 1.2.0-beta01

1 октября 2020 г.

androidx.activity:activity:1.2.0-beta01 and androidx.activity:activity-ktx:1.2.0-beta01 are released. Version 1.2.0-beta01 contains these commits.

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

  • The ActivityResultRegistry now randomly generates integers until it finds one that is unallocated to use as a request code register() , thus preventing the possible integer overflow caused by incrementing request codes. ( b/168779518 )

  • Lifecycle observers are properly removed when calling unregister() on an ActivityResultLauncher . ( b/165608393 )

Изменения поведения

  • The ActivityResultRegistry now throws an IllegalStateException when attempting to call register() with a LifecycleOwner whose Lifecycle has already reached STARTED . ( b/165435866 )

Documentation Updated

  • ContextAware documentation links to LifecycleOwner to highlight Lifecycle callbacks as the appropriate place for creation and destruction events. ( aosp/1414152 )

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

19 августа 2020 г.

androidx.activity:activity:1.2.0-alpha08 and androidx.activity:activity-ktx:1.2.0-alpha08 are released. Version 1.2.0-alpha08 contains these commits.

Новые функции

  • ComponentActivity now implements ContextAware , allowing you to add one or more OnContextAvailableListener instances which will receive a callback before the base Activity.onCreate() . ( b/161390636 )
    • A suspending Kotlin extension withContextAvailable() allows you to run a non-suspending block when the Context becomes available and return a result. ( I8290c )
    • This API is used by FragmentActivity in Fragment 1.3.0-alpha08 to restore the state of the FragmentManager . Any listeners added to subclasses of FragmentActivity will run after that listener. ( I513da )
    • This API is used by AppCompatActivity in AppCompat 1.3.0-alpha02 . Any listeners added to subclasses of AppCompatActivity will run after that listener. ( I513da )

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

  • Fixed an issue with the ActivityResultFragmentVersionDetector Lint check that caused it to break when using Lint 27.1.0 or higher. ( b/162155191 )

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

22 июля 2020 г.

androidx.activity:activity:1.2.0-alpha07 and androidx.activity:activity-ktx:1.2.0-alpha07 are released. Version 1.2.0-alpha07 contains these commits.

Новые функции

  • Added a new InvalidFragmentVersionForActivityResult lint check that verifies that you are using Fragment 1.3.0-alpha07 when using the Activity Result API , avoiding runtime crashes due to “invalid request code” issues and non-functioning permission requests caused by using older versions of Fragments. ( b/152554847 )

Внешний вклад

  • Fixed an ArrayIndexOutOfBoundsException when parsing the results for the RequestPermission Activity Result contract. ( I8f9e3 , b/161057605 )

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

10 июня 2020 г.

androidx.activity:activity:1.2.0-alpha06 and androidx.activity:activity-ktx:1.2.0-alpha06 are released. Version 1.2.0-alpha06 contains these commits.

Новые функции

  • You can now destructure the ActivityResult class in kotlin to directly access the requestCode and intent . ( b/157212935 )
  • ActivityResultLauncher now allows you to get the ActivityResultContract that was used to register the launcher. ( b/156875743 )

Изменения API

  • Breaking change : The invoke() method on ActivityResultRegistry has been renamed to onLaunch() . ( b/157496491 )
  • The OpenMultipleDocuments contract now returns an empty list instead of null to the registered callback if no result is returned. ( b/157348014 )

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

20 мая 2020 г.

androidx.activity:activity:1.2.0-alpha05 and androidx.activity:activity-ktx:1.2.0-alpha05 are released. Version 1.2.0-alpha05 contains these commits.

Новые функции

Изменения API

  • The TakePicture contract now returns a boolean indicating success rather than a thumbnail Bitmap as this was very rarely supported by camera apps when writing the image to the provided Uri . ( b/154302879 )
  • The invoke() extensions on ActivityResultLauncher have been removed in favor of explicitly using launch() to better indicate that these are asynchronous operations. Kotlin extensions for launch have been added to the androidx.activity.result package for ActivityResultLauncher<Void> and ActivityResultLauncher<Unit> that remove the need to pass in null or Unit , respectively, mirroring that behavior from the previously invoke() extensions. ( aosp/1304674 , aosp/1304675 )
  • The IntentSenderRequest.Builder methods for setFlagsMask() and setFlagsValues() has been combined into a single setFlags() method. ( aosp/1302111 )

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

  • When registering an ActivityResultCallback with a LifecycleOwner , fixed an issue where the callback would be triggered before the state reaches STARTED . ( aosp/1309744 )

Изменения поведения

  • The ActivityResultRegistry now generates request codes starting at 0xFFFF rather than at 0 , preventing overlap when using startActivityForResult() or requestPermissions() in an activity. ( aosp/1302324 )

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

29 апреля 2020 г.

androidx.activity:activity:1.2.0-alpha04 and androidx.activity:activity-ktx:1.2.0-alpha04 are released. Version 1.2.0-alpha04 contains these commits.

Новые функции

  • Added a contract that can call startIntentSenderForResult to the ActivityResult APIs. ( b/153007517 )

Изменения API

  • The prepareCall() method has been renamed to registerForActivityResult() , both on ComponentActivity here and in Fragment 1.3.0-alpha04 . ( aosp/1278717 )
  • The GetContents , OpenDocuments , and RequestPermissions contracts have been renamed to GetMultipleContents , OpenMultipleDocuments , and RequestMultiplePermissions , respectively. ( aosp/1280161 )
  • ComponentActivity now implements the ActivityResultRegisteryOwner interface. ( aosp/1290888 )
  • - The startActivityForResult() / onActivityResult() and onRequestPermissionsResult() APIs on ComponentActivity have been deprecated. Please use the Activity Result APIs . ( b/154751887 )

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

  • When using the GetMultipleContents and OpenMultipleDocuments contracts and selecting a single item, it is now correctly returned to your callback. ( b/152941153 )

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

1 апреля 2020 г.

androidx.activity:activity:1.2.0-alpha03 and androidx.activity:activity-ktx:1.2.0-alpha03 are released. Version 1.2.0-alpha03 contains these commits.

Новые функции

  • Added the TakeVideo , PickContact , GetContent , GetContents , OpenDocument , OpenDocuments , OpenDocumentTree , and CreateDocument contracts to the set of pre-built contracts provided by ActivityResultContracts . ( aosp/1262482 , aosp/1266916 , aosp/1268960 )
  • The Activity Result APIs now support launching an activity for result with an optional ActivityOptionsCompat . ( b/151860054 )

Изменения API

  • The TakePicture contract now takes a Uri input for where the image should be stored. The previous contract that does not take any input has been renamed to TakePicturePreview . ( aosp/1262482 )
  • The registerActivityResultCallback() method on ActivityResultRegistry has been renamed to register() . ( aosp/1267621 )
  • The dispose() method on ActivityResultLauncher has been renamed to unregister() and the unregisterResultCallback() on ActivityResultRegistry has been removed. ( aosp/1267621 )
  • The createIntent() method of ActivityResultContact now takes a Context in addition to the input to make it possible to create explicit Intents. ( aosp/1238800 )
  • An ActivityResultContract can now override getSynchronousResult() to deliver a result without calling startActivityForResult . This is used by the RequestPermission and RequestPermissions contracts to correctly deliver a 'granted' status if the requested permissions are already granted. ( b/151110799 )
  • The previously available Dial contract has been removed as that Intent is not meant to be used with startActivityForResult() . ( aosp/1266916 )
  • Many of the Activity Result APIs not meant to be extended are now final . This includes getActivityResultRegistry() , the prepareCall() methods, all methods of ActivityResultRegistry except invoke() , and a number of the default contracts that do not support optional extras. ( b/152439361 )

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

  • Fixed a NullPointerException in ActivityResultRegistry when attempting to deliver results to a callback that has not yet been re-registered after a configuration change; ActivityResultRegistry now holds onto these pending results and delivers them when the callback is re-registered. ( b/152137004 )

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

March 18, 2020

androidx.activity:activity:1.2.0-alpha02 and androidx.activity:activity-ktx:1.2.0-alpha02 are released. Version 1.2.0-alpha02 contains these commits.

Новые функции

  • ActivityResultRegistry : ComponentActivity now provides an ActivityResultRegistry that lets you handle the startActivityForResult() + onActivityResult() as well as requestPermissions() + onRequestPermissionsResult() flows without overriding methods in your Activity or Fragment, brings increased type safety via ActivityResultContract , and provides hooks for testing these flows. See the updated Getting a Result from an Activity . ( b/125158199 )

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

4 марта 2020 г.

androidx.activity:activity:1.2.0-alpha01 and androidx.activity:activity-ktx:1.2.0-alpha01 are released. Version 1.2.0-alpha01 contains these commits.

Новые функции

  • Added support for the ViewTreeLifecycleOwner.get(View) API added in Lifecycle 2.3.0-alpha01 such that it will return the Activity as the LifecycleOwner for any Views directly added to the Activity. ( aosp/1182955 )

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

  • Fixed a regression introduced in Activity 1.1.0 when running on older versions of the platform where onBackPressed() would cause an IllegalStateException due to a bug in the android.app.FragmentManager . ( b/146290338 )

Версия 1.1.0

Версия 1.1.0

22 января 2020 г.

androidx.activity:activity:1.1.0 is released. Version 1.1.0 contains these commits .

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

  • Lifecycle ViewModel SavedState Integration : SavedStateViewModelFactory is now the default factory used when using by viewModels() , the ViewModelProvider constructor, or ViewModelProviders.of() with a ComponentActivity or its subclasses.

Версия 1.1.0-rc03

4 декабря 2019 г.

androidx.activity:activity:1.1.0-rc03 and androidx.activity:activity-ktx:1.1.0-rc03 are released. Version 1.1.0-rc03 contains these commits .

Изменения зависимости

  • Activity now depends on Lifecycle 2.2.0-rc03 and Lifecycle ViewModel SavedState 1.0.0-rc03 .

Версия 1.1.0-rc02

7 ноября 2019 г.

androidx.activity:activity:1.1.0-rc02 and androidx.activity:activity-ktx:1.1.0-rc02 are released. Version 1.1.0-rc02 contains these commits .

Изменения зависимости

  • Activity now depends on lifecycle 2.2.0-rc02 .

Версия 1.1.0-rc01

23 октября 2019 г.

androidx.activity:activity:1.1.0-rc01 and androidx.activity:activity-ktx:1.1.0-rc01 are released with no changes from 1.1.0-beta01 . Version 1.1.0-rc01 contains these commits .

Версия 1.1.0-beta01

9 октября 2019 г.

androidx.activity:activity:1.1.0-beta01 and androidx.activity:activity-ktx:1.1.0-beta01 are released. Version 1.1.0-beta01 contains these commits .

Изменения зависимости

  • Activity now depends on SavedState 1.0.0 stable.

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

5 сентября 2019 г.

androidx.activity:activity:1.1.0-alpha03 and androidx.activity:activity-ktx:1.1.0-alpha03 are released. The commits included in this version can be found here .

Новые функции

  • Activity now depends on Core 1.1.0 stable.

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

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

7 августа 2019 г.

androidx.activity:activity:1.1.0-alpha02 and androidx.activity:activity-ktx:1.1.0-alpha02 are released. The commits included in this version can be found here .

Новые функции

  • SavedStateViewModelFactory is now the default factory used when using by viewModels() , the ViewModelProvider constructor, or ViewModelProviders.of() with a ComponentActivity ( b/135716331 )

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

2 июля 2019 г.

androidx.activity:activity:1.1.0-alpha01 and androidx.activity:activity-ktx:1.1.0-alpha01 are released. The commits included in this version can be found here .

Новые функции

  • activity now depends on Lifecycle 2.2.0-alpha02 . ( aosp/1007817 )
  • activity-ktx added a dependency on lifecycle-runtime-ktx ; you no longer need to explicitly add it to your dependencies when using activity-ktx or libraries that depend on activity-ktx (such as fragment-ktx ). ( aosp/987162 )

Версия 1.0.0

Версия 1.0.0

5 сентября 2019 г.

androidx.activity:activity:1.0.0 and androidx.activity:activity-ktx:1.0.0 are released. The commits included in this version can be found here .

Major Features of 1.0.0

  • ComponentActivity : ComponentActivity serves as the new base class for FragmentActivity in Fragment 1.1.0 and, by extension, AppCompatActivity in AppCompat 1.1.0 .
  • activity-ktx : The activity-ktx module includes a by viewModels Kotlin property extension for accessing ViewModels. This module is automatically included when you include fragment-ktx from Fragment 1.1.0 .
  • OnBackPressedDispatcher : As a composable alternative to overriding onBackPressed() , you can now register a OnBackPressedCallback from any LifecycleOwner (such as a fragment) to intercept system back button events. A lambda with receiver version addCallback has been added to activity-ktx . See Provide custom back navigation documentation for more details.
  • onRetainCustomNonConfigurationInstance deprecation : the onRetainCustomNonConfigurationInstance() and the related getLastCustomNonConfigurationInstance() APIs have been deprecated. It is strongly recommended to use ViewModels to store non-configuration state as they offer a composable solution suitable for any ViewModelStoreOwner that makes the ownership of the retained objects clear and provides an onCleared() callback for cleaning up resources when the activity is finally destroyed.

Версия 1.0.0-rc01

2 июля 2019 г.

androidx.activity:activity:1.0.0-rc01 and androidx.activity:activity-ktx:1.0.0-rc01 are released with no changes from 1.0.0-beta01 . The commits included in this version can be found here .

Версия 1.0.0-beta01

5 июня 2019 г.

androidx.activity::activity:1.0.0-beta01 and androidx.activity:activity-ktx:1.0.0-beta01 are released with no changes from 1.0.0-alpha08 . The commits included in this version can be found here .

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

7 мая 2019 г.

androidx.activity:activity:1.0.0-alpha08 and androidx.activity:activity-ktx:1.0.0-alpha08 are released. The commits included in this version can be found here .

API changes

  • Breaking change: The previously deprecated addOnBackPressedCallback and removeOnBackPressedCallback methods on ComponentActivity have been removed. aosp/953857
  • The setEnabled() and isEnabled() methods of OnBackPressedCallback are now final. b/131416833
  • The remove() method of OnBackPressedCallback is now final. aosp/952720
  • OnBackPressedDispatcher now has public constructors, allowing you to construct your own instances for testing, etc. aosp/953431
  • onBackPressed() for ComponentActivity is now explicitly marked as @MainThread aosp/952721

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

  • Fixed a ConcurrentModificationException when calling remove() from within the handleOnBackPressed() method of a OnBackPressedCalback that was added with a LifecycleOwner . b/131765095

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

April 25th, 2019

androidx.activity:activity:1.0.0-alpha07 and androidx.activity:activity-ktx:1.0.0-alpha07 are released. The commits included in this version can be found here .

API changes

This release makes significant changes to the handling of the onBackPressed() . See the updated custom back documentation for more details.

  • The methods for OnBackPressedCallback and OnBackPressedDispatcher have been marked as @MainThread . ( aosp/943813 )
  • The handleOnBackPressed() method no longer returns a boolean . Instead, OnBackPressedCallback is now an abstract class that can be enabled or disabled - only when the new isEnabled() method returns true will handleOnBackPressed() be called, in which you must handle the back button. ( aosp/944518 )
  • The addCallback methods of OnBackPressedDispatcher no longer return a Cancellable instance. OnBackPressedCallback now contain a remove() method that fulfill this functionality, allowing you to call remove() during handleOnBackPressed() . ( aosp/944519 ) ( aosp/946316 )
  • activity-ktx now contains a receiver scoped callback for addCallback that accepts a lamdba that implements handleOnBackPressed() and has access to isEnabled and remove() ( aosp/944520 )

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

April 3rd, 2019

androidx.activity:activity:1.0.0-alpha06 and androidx.activity:activity-ktx:1.0.0-alpha06 are released. The commits included in this version can be found here .

API changes

  • ComponentActivity now contain a second constructor that takes a @LayoutRes int , which replaces the previous behavior of annotating your AppCompatActivity class with @ContentView . This approach works in both app and library modules. ( b/128352521 )
  • The OnBackPressedCallback related APIs on ComponentActivity have been deprecated in favor of the new OnBackPressedDispatcher , retrievable via getOnBackPressedDispatcher() . ( aosp/922523 )
  • Methods to add a new OnBackPressedCallback to the OnBackPressedDispatcher now return a Cancellable object, allowing removal of the callback without requiring an explicit reference to the OnBackPressedDispatcher . ( aosp/922523 )
  • Adding a OnBackPressedCallback with an associated LifecycleOwner now results in adding and removing the OnBackPressedCallback as the Lifecycle is started and stopped, respectively. ( aosp/922523 )

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

13 марта 2019 г.

androidx.activity:activity:1.0.0-alpha05 and androidx.activity:activity-ktx:1.0.0-alpha05 are released. The full list of commits included in this release can be found here .

Новые функции

  • @ContentView annotation lookups are now cached ( b/123709449 )

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

30 января 2019 г.

androidx.activity:activity 1.0.0-alpha04 and androidx.activity:activity-ktx 1.0.0-alpha04 are released.

Новые функции

  • Added support for the @ContentView class annotation that allows you to indicate which layout XML file should be inflated as an alternative to using setContentView() . ( aosp/837619 )

API changes

  • Added a note that getViewModelStore() should not be overridden and will be made final in a future release. Please file a feature request if you are currently overriding this method. ( aosp/837619 )

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

  • The activity module now depends on version 2.1.0-alpha02 of ViewModel to match the activity-ktx module's dependency.

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

17 декабря 2018 г.

androidx.activity 1.0.0-alpha03 is released.

Новые функции

  • ComponentActivity now implements BundleSavedStateRegistryOwner and depends on the newly released SavedState library [ aosp/815133 ]
  • ComponentActivity now works around an Android framework bug that would cause InputMethodManager to leak the last focused view [ b/37122102 ]

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

3 декабря 2018 г.

API changes

  • Added a note that getLifecycle() should not be overridden and will be made final in a future release. Please file a feature request if you are currently overriding this method. ( aosp/815834 )

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

5 ноября 2018 г.

androidx.activity 1.0.0-alpha01 introduces ComponentActivity , a new base class of the existing FragmentActivity and AppCompatActivity .

Новые функции

  • You can now register an OnBackPressedCallback via addOnBackPressedCallback to receive onBackPressed() callbacks without needing to override the method in your activity.
  • Added a new by viewModels() Kotlin property delegate for retrieving ViewModel s from a ComponentActivity .
  • Pending input events (such as clicks) are now canceled in onStop() .

API changes

  • The implementation of LifecycleOwner and ViewModelStoreOwner have been moved from FragmentActivity to ComponentActivity .
  • onRetainCustomNonConfigurationInstance has been deprecated. Use a ViewModel for storing objects that need to survive configuration changes.