Активность

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

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

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

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

классный

dependencies {
    def activity_version = "1.10.1"

    // Java language implementation
    implementation "androidx.activity:activity:$activity_version"
    // Kotlin
    implementation "androidx.activity:activity-ktx:$activity_version"
}

Котлин

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 лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новый выпуск

Более подробную информацию смотрите в документации Issue Tracker .

Версия 1.12

Версия 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, которые запускают Photo Picker, больше не делегируют полномочия напрямую службам Google Play, если системный Photo Picker недоступен, а используют общедоступное действие ACTION_SYSTEM_FALLBACK_PICK_IMAGES и связанные с ним дополнения для предоставления единообразного опыта Photo Picker для 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 . Он также поставляется с новым правилом lint, которое проверяет, когда 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, которые запускают Photo Picker, больше не делегируют напрямую службам Google Play, если системный Photo Picker недоступен, а используют публичное действие ACTION_SYSTEM_FALLBACK_PICK_IMAGES и связанные с ним дополнения для предоставления согласованного опыта Photo Picker для OEM-производителей и системных приложений в качестве резерва. Это не должно повлиять на пользовательский опыт для устройств с последней версией служб 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() при обработке обратного вызова, поскольку это всегда нарушает Predictive Back Animation . Подробнее см. в руководстве по лучшим практикам .
  • Оставшиеся 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. Это гарантирует, что nullability generics в контракте, переданном в 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 : исправлено дополнение, переданное в контракт действия Photo Picker ACTION_SYSTEM_FALLBACK_PICK_IMAGES , чтобы правильно передать ему ключ EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX , а не использовать дополнение с ключом "com.google.android.gms.provider.extra.PICK_IMAGES_MAX" . Настоятельно рекомендуется, если вы OEM-производитель, реализующий системный резервный Photo Picker, поддерживать оба дополнения для обеспечения самой широкой совместимости. ( 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 содержит эти коммиты.

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

  • Исправлен дополнительный параметр, переданный в контракт действия Photo Picker ACTION_SYSTEM_FALLBACK_PICK_IMAGES , чтобы правильно передать ему ключ EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX , а не использовать дополнительный параметр с ключом "com.google.android.gms.provider.extra.PICK_IMAGES_MAX" . Настоятельно рекомендуется, если вы OEM-производитель, реализующий резервный Photo Picker, поддерживать оба дополнительных параметра для обеспечения самой широкой совместимости. ( 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

  • Predictive Back - OnBackPressedCallback теперь предлагает новые обратные вызовы Predictive Back для обработки начала жеста назад, прогресса на протяжении жеста и отмены жеста назад в дополнение к предыдущему обратному вызову handleOnBackPressed() для момента фиксации жеста назад. Это также идет с PredictiveBackHandler Composable для обработки событий предиктивного жеста назад в 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 Composable для обработки событий предиктивного жеста назад. Он предоставляет 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 теперь содержит новые обратные вызовы Predictive Back progress для обработки начала жеста «назад», хода выполнения жеста и отмены жеста «назад» в дополнение к предыдущему обратному вызову 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 путем реализации действия резервного варианта . Photo Picker будет использовать этот резервный вариант, если он доступен, прежде чем переходить к использованию Intent.ACTION_OPEN_DOCUMENT , который по-прежнему поддерживает все устройства API 19 и выше.
  • ComponentDialog теперь реализует SavedStateRegistryOwner и имеет доступ к своему собственному SavedStateRegistry и устанавливает SavedStateRegistryOwner для своего ViewTree . Теперь можно использовать Jetpack Compose в ComponentDialog , поскольку он соответствует как LifecycleOwner , так и SavedStateRegistryOwner прикрепленным к окну через требования API ViewTree .
  • IntentSenderRequest.Builder.setFlags() теперь позволяет устанавливать несколько флагов из Intent , а не только один флаг.

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

Ряд классов 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, когда ваше приложение следует считать полностью готовым к запуску, чтобы вы могли отслеживать производительность.

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

  • 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-производителей и системных приложений, которые хотят обеспечить единообразный опыт Photo Picker. Реализация этого резерва по-прежнему ограничена только системными приложениями. ( 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, предоставляемые Photo Picker, где это возможно, в случаях, когда система Android, предоставляемая Photo Picker (например, MediaStore.ACTION_PICK_IMAGES ), недоступна. API isPhotoPickerAvailable() , который обнаруживает только предоставленный системой Android Photo Picker, устарел. Рекомендуется использовать новый API isPhotoPickerAvailable(Context) , который вернет, если доступен любой из Photo Picker. ( 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 b/261162296 )

Изменения API

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

Конверсии Kotlin

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

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

  • Из Activity 1.6.1 : Исправлена ​​проблема с контрактом PickMultipleVisualMedia Activity Result, который не запускался на устройствах Android R при использовании значения по умолчанию для maxItems . ( Ie2776 , b/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 и воспроизводить жизненно важные органы, когда ваше приложение следует считать полностью нарисованным для метрик запуска, чтобы вы могли отслеживать производительность.

Были добавлены два API -интерфейсы, чтобы сделать API более удобной для использования 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 . ( IE2776 , B/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 , B/238350794 )
  • ComponentActivity теперь будет правильно отправлять вызовы меню без необходимости вызов супер функции в вашей деятельности. ( IE33C5 , B/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 )
  • Классы, которые переопределяют ComponentActivity onPictureInPictureModeChanged() обратный вызов, теперь всегда будут отправлены их обратные вызовы. ( 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 , B/231476082 )

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

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

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

Версия 1.6.0-Alpha05

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-Alpha04

18 мая 2022 г.

androidx.activity:activity:1.6.0-alpha04 и androidx.activity:activity-ktx:1.6.0-alpha04 выпускаются.

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

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

Версия 1.6.0-Alpha03

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 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-Alpha01

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 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 , B/238350794 )

  • ComponentActivity теперь будет правильно отправлять вызовы меню в onPrepareOptionMenu() , onCreateOptionsMenu() и onOptionsItemSelected() переопределения без необходимости вызовать супер функцию. ( IE33C5 , B/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

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

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

  • Конструктор без параметров для 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-бита01. Версия 1.5.0-RC01 содержит эти коммиты.

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

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

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

Версия 1.5.0-Alpha05

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

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

  • ComponentActivity onPanelClosed() теперь также вызывает Super onPanelClosed() , решает проблему, при которой метод onContextMenuClosed не будет вызван. ( IB6F77 )

Версия 1.5.0-Alpha04

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 , b/224844583 )

Версия 1.5.0-Alpha03

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-Alpha02

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-Alpha01

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, введенным в рамках жизненного цикла 2.5.0-alpha01 . ( IE7E00 , B/207012584 )
  • Добавлен ComponentDialog , подкласс Dialog , который включает в себя OnBackPressedDispatcher , который будет вызван, когда кнопка «Окна» нажатится, когда диалог виден. Важно отметить, что этот подкласс также устанавливает ViewTreeOnBackPressedDispatcherOwner , позволяя представлениям общий способ получить правильный диспетчер, независимо от того, существует ли он в ComponentActivity или ComponentDialog . ( I8a1bc )
  • ComponentActivity теперь реализует новый интерфейс OnNewIntentProvider , чтобы позволить любому компоненту получать эти события. ( If1f8b )
  • ComponentActivity теперь реализует новый интерфейс OnConfigurationChangedProvider , чтобы позволить любому компоненту получать эти события. ( If623b )
  • ComponentActivity теперь реализует новый интерфейс OnTrimMemoryProvider , чтобы позволить любому компоненту получать эти события. ( IA9295 )

API меняется

  • Конструктор без параметров для ActivityResultContracts.CreateDocument был устарел и заменен новым конструктором, который принимает конкретный тип MIME (например, "image/png" ), как требуется Intent.ACTION_CREATE_DOCUMENT . ( I2bec6 )
  • 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, могут определить правильную нулясь для их классов ввода и вывода.
  • Класс ActivityResultContracts и его контракты были переписаны в Котлине, чтобы обеспечить надлежащую нуль.

Версия 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 , B/200845664 )

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

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

API меняется

  • Исправлена ​​тип для ActivityResultContracts.OpenMultipleDocuments и ActivityResultContracts.GetMultipleContents , которые заставили затем использовать выходной тип List<? extends Uri> при использовании кода из языка программирования Java. ( If71de )
  • Общественные константы в рамках ActivityResultContracts.StartActivityForResult , ActivityResultContracts.StartIntentSenderForResult и ActivityResultContracts.RequestMultiplePermissions теперь доступны при использовании Kotlin через свои ныне Companion объекты. ( AOSP/1832555 )

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

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

Версия 1.4.0-Alpha02

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

API меняется

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

Версия 1.4.0-Alpha01

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 , который не зарегистрирован или который не был зарегистрирован. ( IDA75D , B/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 содержит эти коммиты.

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

  • Деятельность теперь зависит от котлина 1.5.21 .
  • СООБЩЕНИЕ СОЗДАНИЯ В настоящее время зависит от составления 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 обеспечивает метод расширения setContent для размещения вашего JetPack Compose UI в действии и сочинять конкретные обертки для взаимодействия с API ComponentActivity для обработки кнопки «Система» и API -интерфейсы результатов активности. Смотрите документацию для более подробной информации.
  • CaptureVideo Contract - CaptureVideo ActivityResultContract заменяет теперь устаревший контракт TakeVideo и возвращает логический обозначение успеха, который работает во многих приложениях для камеры.
  • Отслеживание подсказки для изображения в картине -Пользователи activity-ktx теперь могут использовать метод Activity trackPipAnimationHintView для автоматического восстановления 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 , B/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-бета02

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

Обновленная activity-compose , чтобы зависеть от составления 1.0.0-beta09 . androidx.compose.ui:ui-test-junit4 теперь имеет зависимость от времени компиляции от activity-compose .

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

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

API меняется

  • Ранее устаревший метод @Composable registerForActivityResult() был удален. Пожалуйста, используйте rememberLauncherForActivityResult() . ( IC39D3 )

Версия 1.3.0-Alpha08

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 , B/185938070 )
  • Добавлен новый API Activity#setPipAnimationHintView , чтобы обновить подсказку источника Pipparams, когда перемещается представление. ( I9063d )

API меняется

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

Составьте совместимость

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

Версия 1.3.0-Alpha07

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 больше не будет бросить ложную положительную ошибку ворса, говорящая вам на 1.3.0 . ( AOSP/1670206 , B/184847092 )

Версия 1.3.0-Alpha06

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 теперь возвращает нулевое значение, чтобы лучше определить, доступно ли оно в текущей композиции. API, которые требуют тех API, таких как BackHandler и rememberLauncherForActivityResult() , соответственно, теперь принесут более описательную ошибку, если базовый владелец не найден. NavHost теперь работает, даже когда OnBackPressedDispatcherOwner не найден, в этом случае при предварительном просмотре NavHost . ( I7d8b4 )

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

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

Версия 1.3.0-Alpha05

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 Lint Проверка, которая привела к ложноположительному положительному при использованию фрагмента 1.3.1 или выше. ( I54da1 , b/182388985 )
  • Из деятельности 1.2.2 : ComponentActivity теперь позволяет избежать ClassNotFoundException при запуске Intent от ActivityResultContract , который ранее считался дополнительным в другом Intent . ( IEFF05 , B/182906230 )

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

Версия 1.3.0-Alpha04

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 , b/180884668 )
  • Из деятельности 1.2.1 : ActivityResultRegistry теперь гарантирует, что запросы в процессе launch() будут возвращать свои результаты, даже если вы unregister() снова register() с тем же ключом. ( I9ef34 , b/181267562 )
  • Activity Compose больше не добавляет тестовых зависимостей к классовой дороге. ( IFD8B3 )
  • Исправлена ​​проблема с BackHandler , в которой ранее onBack Lambda все еще использовалась после переоборудования. ( 8EB5EB )

Версия 1.3.0-Alpha03

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

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

  • В настоящее время существует композиционная функция registerForActivityResult для получения результатов деятельности в рамках композибельных продуктов. ( IA7851 , B/172690553 )

API меняется

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

Версия 1.3.0-Alpha02

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

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

  • Исправлена ​​проблема в активности составьте 1.3.0-alpha01 , которая вызывает NoSuchMethodError: No static method setContent Excontent при использовании Compose 1.0.0-alpha12 . Все пользователи композиции должны зависеть от 1.3.0-alpha02 и выше. ( B/179911234 )

API меняется

  • API BackHandler может использоваться для того, чтобы позволить композиции для перехвата системы обратной связи. ( I58ed5 , b/172154006 )

Версия 1.3.0-Alpha01

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 сочинять конкретных помощников для 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 . ( B/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 , B/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 )
  • Исправлена ​​ложная ошибка положительного ворса, в котором говорилось, что вы используете фрагмент 1.3.0 при использовании моментального снимка, альфа, бета -версии или RC строительства более новой версии фрагментов. ( F4A57E , B/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 Lint Проверка, которая привела к ложному положительному при использованию фрагмента 1.3.1 или выше. ( I54da1 , b/182388985 )
  • ComponentActivity теперь избегает ClassNotFoundException при запуске Intent от ActivityResultContract , который ранее считался дополнительным в другом Intent . ( IEFF05 , B/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 , b/180884668 )
  • ActivityResultRegistry теперь гарантирует, что в процессе launch() запросы запуска () будут возвращать свои результаты, даже если вы unregister() , то снова register() с тем же ключом. ( I9ef34 , b/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() позволяет запустить блок, не связанный с SUSPENDING, когда контекст становится доступным, и вернуть результат.
    • Этот API используется FragmentActivity в фрагменте 1.3.0 для восстановления состояния FragmentManager . Любые слушатели, добавленные к подклассам FragmentActivity , будут работать после этого слушателя.
    • Этот API используется AppCompatActivity в AppCompat 1.3.0-Alpha02 или выше. Любые слушатели, добавленные к подклассам AppCompatActivity , будут работать после этого слушателя.
  • Поддержка ViewTree : ComponentActivity теперь поддерживает ViewTreeLifecycleOwner.get(View) , ViewTreeViewModelStoreOwner.get(View) и ViewTreeSavedStateRegistryOwner APIS, добавленные в LifecycleOwner 2.3.0 и SavedState 1.1.0 ViewModelStoreOwner что он будет возвращать в SavedStateRegistryOwner Добавлено в ComponentActivity .

  • Отчетный отчетмон () Backport - Метод Activity reportFullyDrawn() был возвращен в ComponentActivity чтобы работать на всех уровнях API, исправляя сбой на API 19 и добавляя трассировку для этого метода для всех уровней API.

Версия 1.2.0-RC01

16 декабря 2020 года

androidx.activity:activity:1.2.0-rc01 и androidx.activity:activity-ktx:1.2.0-rc01 выпускаются. Версия 1.2.0-RC01 содержит эти коммиты.

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

  • ActivityResultRegistry теперь всегда восстанавливает точное состояние, которое было сохранено. ( Idd56b )
  • Добавить трассировку в ComponentActivity.reportFullyDrawn .

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

  • 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 )

Version 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 )

External Contribution

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

Version 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 )

Behavior Changes

  • 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 )

Version 1.2.0-alpha08

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 )

Version 1.2.0-alpha07

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 )

External Contribution

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

Version 1.2.0-alpha06

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 Changes

  • 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 )

Version 1.2.0-alpha05

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 Changes

  • 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 )

Behavior Changes

  • 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 )

Version 1.2.0-alpha04

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 Changes

  • 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 )

Version 1.2.0-alpha03

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 Changes

  • 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 )

Version 1.2.0-alpha02

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 )

Version 1.2.0-alpha01

March 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 .

Important changes since 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.

Version 1.1.0-rc03

December 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 .

Dependency changes

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

Version 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 .

Dependency changes

  • Activity now depends on lifecycle 2.2.0-rc02 .

Version 1.1.0-rc01

October 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 .

Version 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 .

Dependency changes

  • Activity now depends on SavedState 1.0.0 stable.

Version 1.1.0-alpha03

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.

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

Version 1.1.0-alpha02

August 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 )

Version 1.1.0-alpha01

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.

Version 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 .

Version 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 .

Version 1.0.0-alpha08

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

Version 1.0.0-alpha07

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 )

Version 1.0.0-alpha06

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 )

Version 1.0.0-alpha05

March 13th, 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 )

Version 1.0.0-alpha04

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.

Version 1.0.0-alpha03

December 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 ]

Version 1.0.0-alpha02

December 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 )

Version 1.0.0-alpha01

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.