Активность

Доступ к составным API, созданным на основе Activity.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
13 ноября 2024 г. 1.9.3 - 1.10.0-бета01 -

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

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

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

Groovy

dependencies {
    def activity_version = "1.9.3"

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

Kotlin

dependencies {
    val activity_version = "1.9.3"

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

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см . в документации по системе отслеживания проблем .

Версия 1.10

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

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 , б / 283009666 )

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

  • Из действия 1.9.3 : PredictiveBackHandler больше не будет запускать обратный вызов после отключения обработчика. Это устранит проблему, из-за которой NavHost из Navigation Compose вызывал исключение IndexOutOfBoundsException . ( I3f75e , б / 365027664 , б / 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 и связанные дополнительные функции для обеспечения единообразного использования средства выбора фотографий для OEM-производителей и системных приложений. как запасной вариант. Это не должно влиять на взаимодействие с пользователем на устройствах, на которых установлена ​​последняя версия сервисов Google Play. ( I3513d )

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

  • Убрано ручное определение доступа к API новой платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или новее (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или новее (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновить D8 до версии 8.1 или более поздней. Более подробную информацию можно найти в этой статье . ( I9496c , б/345472586 )
  • Из действия 1.9.2 : исправлена ​​проблема, из-за которой API Activity Compose PredictiveBackHandler продолжал обрабатывать системный жест возврата в кадре, в котором он был отключен, что могло привести к тому, что такие библиотеки, как Navigation Compose, могли обрабатывать ответ даже с пустым обратным стеком, что приводило к он выдает исключение IndexOutOfBoundsException . ( Ие3301 , б/340202286 )
  • Из действия 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 , б/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 . ( Ие3301 , б/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 активности были переписаны на 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-бета01

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

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

  • Исправлено снижение производительности при запуске действия, появившееся в действии 1.9.0-alpha02 вызванное вызовом OnBackPressedDispatcher в рамках создания действия. ( 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 содержит эти коммиты.

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

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

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

  • API enableEdgeToEdge теперь рисует вокруг любых вырезов дисплея. ( а3644b , б/311173461 )
  • Из действия 1.8.2 : исправлено дополнение, передаваемое в 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. ( Ид4615 )
  • PickVisualMediaRequest теперь имеет тот же минимальный уровень API 19, что и контракт результата действия PickVisualMedia . ( 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-производителем и внедрили резервную систему 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 BackOnBackPressedCallback теперь предлагает новые обратные вызовы 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 , а не переопределять этот метод.

  • EdgeToEdgeComponentActivity.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-бета01

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 . ( аосп/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 , б/294884345 )

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

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

  • ComponentActivity больше не будет отображать NPE на Android 13, когда он получает обратный вызов onBackPressed() , а Activity уже DESTROYED . ( Idb055 , б/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 , чтобы предоставить собственную логику для обнаружения ночного режима. ( аосп/2546393 , б/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 . Это было выпущено из внутренней ветки.

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

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

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

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

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

  • ActivityResultRegister теперь использует Kotlin Random вместо Java. ( I4d98f , б/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 для обработки запуска жеста назад, выполнения на протяжении всего жеста и отмены жеста назад в дополнение к предыдущему обратному вызову 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 , б/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 , б/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, реализовав резервное действие . Средство выбора фотографий будет использовать этот резервный вариант, если он доступен, прежде чем вернуться к использованию 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-бета02

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-бета01

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 недоступна, теперь корректно ограничивает обработку приложениями, установленными в системном образе устройства. ( Если8ае6 )

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

  • 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, предоставляемую Photo Picker, устарел. Рекомендуется использовать новый 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 b/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 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-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 содержит эти коммиты.

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

  • ComponentActivity onPanelClosed() теперь также вызывает Super 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 , b/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, введенным в рамках жизненного цикла 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-beta01 содержит эти коммиты.

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

Изменения API

  • Класс ActivityResultContract был переписан в Kotlin, чтобы гарантировать, что разработчики, пишущие пользовательские контракты в Kotlin, могут определить правильную нулясь для их классов ввода и вывода. ( I8a8f5 )
  • Класс ActivityResultContracts и его контракты были переписаны в Котлине, чтобы обеспечить надлежащую нуль. ( 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 , который не зарегистрирован или который не был зарегистрирован. ( 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 activity-ktx теперь могут использовать метод расширения 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-beta02 содержит эти коммиты.

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

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

  • BackHandler теперь будет правильно перехватывать задними прессами в случае STOPPED деятельности, затем STARTED снова, а другие обратные вызовы были добавлены с жизненным циклом. ( I71de6 , b/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 Lint Проверка, которая привела к ложноположительному положительному при использованию фрагмента 1.3.1 или выше. ( I54da1 , b/182388985 )
  • Из деятельности 1.2.2 : ComponentActivity теперь позволяет избежать ClassNotFoundException при запуске Intent от ActivityResultContract , который ранее считался дополнительным в другом Intent . ( IEFF05 , B/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 , b/180884668 )
  • Из деятельности 1.2.1 : ActivityResultRegistry теперь гарантирует, что запросы в процессе launch() будут возвращать свои результаты, даже если вы unregister() снова register() с тем же ключом. ( I9ef34 , b/181267562 )
  • Activity Compose больше не добавляет тестовых зависимостей к классовой дороге. ( IFD8B3 )
  • Исправлена ​​проблема с BackHandler , в которой ранее onBack Lambda все еще использовалась после переоборудования. ( 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 содержит эти коммиты.

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

  • В настоящее время существует композиционная функция registerForActivityResult для получения результатов деятельности в рамках композибельных продуктов. ( IA7851 , B/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 содержит эти коммиты.

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

  • Исправлена ​​проблема в активности составьте 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-альфа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 сочинять конкретных помощников для 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

  • APIS РЕЗУЛЬТАТЫ ДЕЙСТВИТЕЛЬНОСТЬ : 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 1.1.0 LifecycleOwner ViewTreeLifecycleOwner.get(View) ViewModelStoreOwner 2.3.0 ViewTreeViewModelStoreOwner.get(View) и ViewTreeSavedStateRegistryOwner API 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 теперь переопределяет reportFullyDrawn() , позволяя его вызвать на все уровни API и исправлять сбой при вызове этого метода без соответствующего разрешения системы на устройствах API 19. Спасибо Саймон Шиллер! ( B/163239764 , #103 )

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

2 декабря 2020 г.

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

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

  • Исправлена ​​проблема, в которой API результата активности не будет ждать STARTED жизненного цикла до получения результатов при регистрации в Lifecycle . ( I109ea )

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

  • Обновлено документацию для launch() , чтобы явно назвать, что она может бросить ActivityNotFoundException . Спасибо, Михал, Зелиньски! ( AOSP/1493580 )

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

1 октября 2020 г.

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

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

  • ActivityResultRegistry теперь случайным образом генерирует целые числа, пока не найдет тот, который не раскрывается для использования в качестве register() , что предотвращает возможное переполнение целого числа, вызванное увеличением кодов запросов. ( B/168779518 )

  • Наблюдатели Lifecycle должным образом удаляются при вызове unregister() на ActivityResultLauncher . ( B/165608393 )

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

  • ActivityResultRegistry теперь бросает IllegalStateException , когда попытка позвонить register() с LifecycleOwner чей Lifecycle уже достиг STARTED . ( B/165435866 )

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

  • ContextAware документация ссылается на LifecycleOwner чтобы выделить обратные вызовы Lifecycle в качестве подходящего места для событий создания и разрушения. ( AOSP/1414152 )

Версия 1.2.0-Alpha08

19 августа 2020 г.

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

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

  • ComponentActivity теперь реализует ContextAware , позволяя добавлять один или несколько экземпляров OnContextAvailableListener , которые получат обратный вызов перед базовой Activity.onCreate() . ( B/161390636 )
    • Приостановление расширения Kotlin withContextAvailable() позволяет запустить блок, не связанный с SUSPENDING, когда контекст становится доступным, и вернуть результат. ( I8290c )
    • Этот API используется FragmentActivity в фрагменте 1.3.0-Alpha08 для восстановления состояния FragmentManager . Любые слушатели, добавленные к подклассам FragmentActivity будут работать после этого слушателя. ( I513da )
    • Этот API используется AppCompatActivity в AppCompat 1.3.0-Alpha02 . Любые слушатели, добавленные к подклассам AppCompatActivity будут работать после этого слушателя. ( I513da )

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

  • Исправлена ​​проблема с проверкой LINT ActivityResultFragmentVersionDetector , которая заставила его сломаться при использовании Lint 27.1.0 или выше. ( B/162155191 )

Версия 1.2.0-Alpha07

22 июля 2020 г.

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

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

  • Добавлена ​​новая InvalidFragmentVersionForActivityResult Lint Проверка, которая проверяет, что вы используете фрагмент 1.3.0-alpha07 при использовании API результата активности , избегая сбоев времени выполнения из-за проблем «неверного запроса» и запросов на разрешение на разрешение на не функционирование, вызванные использованием более старых версий фрагментов. ( B/152554847 )

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

  • Исправлено ArrayIndexOutOfBoundsException при анализе результатов для договора результатов деятельности RequestPermission . ( I8f9e3 , b/161057605 )

Версия 1.2.0-Alpha06

10 июня 2020 г.

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

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

  • Теперь вы можете уничтожить класс ActivityResult в Котлине, чтобы напрямую получить доступ к requestCode и intent . ( B/157212935 )
  • ActivityResultLauncher теперь позволяет вам получить ActivityResultContract , который использовался для регистрации пусковой установки. ( B/156875743 )

Изменения API

  • Перерывные изменения : метод invoke() на ActivityResultRegistry был переименован в onLaunch() . ( B/157496491 )
  • Контракт OpenMultipleDocuments теперь возвращает пустой список вместо null в зарегистрированный обратный вызов, если результат не возвращается. ( B/157348014 )

Версия 1.2.0-Alpha05

20 мая 2020 г.

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

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

Изменения API

  • Контракт TakePicture теперь возвращает boolean указывающий на успех, а не растровую Bitmap , так как это очень редко поддерживалось приложениями камеры при написании изображения в предоставленный Uri . ( B/154302879 )
  • Расширения invoke() на ActivityResultLauncher были удалены в пользу явного использования launch() чтобы лучше указать, что это асинхронные операции. Расширения Kotlin для launch были добавлены в пакет androidx.activity.result для ActivityResultLauncher<Void> и ActivityResultLauncher<Unit> , которые устраняют необходимость проходить в null или Unit , соответственно, отражая это поведение из ранее расширения invoke() . ( AOSP/1304674 , AOSP/1304675 )
  • Методы IntentSenderRequest.Builder для setFlagsMask() и setFlagsValues() были объединены в один метод setFlags() . ( AOSP/1302111 )

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

  • При регистрации ActivityResultCallback с LifecycleOwner исправил проблему, в которой обратный вызов будет вызван до того, как STARTED достижение штата. ( AOSP/1309744 )

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

  • ActivityResultRegistry теперь генерирует коды запросов, начинающиеся с 0xFFFF а не в 0 , предотвращая перекрытие при использовании startActivityForResult() или requestPermissions() в действии. ( AOSP/1302324 )

Версия 1.2.0-Alpha04

29 апреля 2020 г.

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

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

  • Добавлен контракт, который может позвонить в StartIntEntentSenderForResult в APIS -result. ( B/153007517 )

Изменения API

  • Метод prepareCall() был переименован в registerForActivityResult() как по ComponentActivity , так и в фрагменте 1.3.0-alpha04 . ( AOSP/1278717 )
  • Договоры GetContents , OpenDocuments и RequestPermissions были переименованы в GetMultipleContents , OpenMultipleDocuments и RequestMultiplePermissions соответственно. ( AOSP/1280161 )
  • ComponentActivity теперь реализует интерфейс ActivityResultRegisteryOwner . ( AOSP/1290888 )
  • - startActivityForResult() / onActivityResult() и onRequestPermissionsResult() API на ComponentActivity были устарели. Пожалуйста, используйте API -интерфейсы результата деятельности . ( B/154751887 )

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

  • При использовании контрактов GetMultipleContents и OpenMultipleDocuments и выбором одного элемента, теперь он правильно возвращается к вашему обратному вызову. ( B/152941153 )

Версия 1.2.0-Alpha03

1 апреля 2020 г.

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

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

  • Добавлены TakeVideo , PickContact , GetContent , GetContents , OpenDocument , OpenDocuments , OpenDocumentTree и CreateDocument Contrics с набором предварительно созданных контрактов, предоставленных ActivityResultContracts . ( AOSP/1262482 , AOSP/1266916 , AOSP/1268960 )
  • API -интерфейсы результатов активности теперь поддерживают запуск деятельности для результата с дополнительным ActivityOptionsCompat . ( B/151860054 )

Изменения API

  • Контракт TakePicture теперь требует ввода Uri для того, где следует хранить изображение. Предыдущий контракт, который не принимает никаких вкладов, был переименован в TakePicturePreview . ( AOSP/1262482 )
  • Метод registerActivityResultCallback() на ActivityResultRegistry был переименован в register() . ( AOSP/1267621 )
  • Метод dispose() на ActivityResultLauncher был переименован в unregister() , а unregisterResultCallback() на ActivityResultRegistry была удалена. ( AOSP/1267621 )
  • Метод createIntent() ActivityResultContact теперь принимает Context в дополнение к вводу, чтобы сделать возможным создание явных намерений. ( AOSP/1238800 )
  • ActivityResultContract теперь может переопределить getSynchronousResult() , чтобы доставить результат, не вызывая startActivityForResult . Это используется контрактами RequestPermission и RequestPermissions чтобы правильно предоставить «предоставленный» статус, если запрашиваемые разрешения уже предоставлены. ( б/151110799 )
  • Ранее доступный контракт Dial был удален, так как это Intent не предназначено для использования с startActivityForResult() . ( AOSP/1266916 )
  • Многие из результатов деятельности, не предназначенных для расширения, теперь являются final . Это включает в себя getActivityResultRegistry() , методы prepareCall() , все методы ActivityResultRegistry за исключением invoke() , и ряд контрактов по умолчанию, которые не поддерживают дополнительные дополнительные дополнительные данные. ( 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-Alpha02

18 марта 2020 г.

androidx.activity:activity:1.2.0-alpha02 and androidx.activity:activity-ktx:1.2.0-alpha02 are released. Версия 1.2.0-Alpha02 содержит эти коммиты.

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

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

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

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

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

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 .

Версия 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-бета01

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.

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

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

androidx.activity:activity:1.1.0-alpha03 and androidx.activity:activity-ktx:1.1.0-alpha03 are released. Коммиты, включенные в эту версию, можно найти здесь .

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

  • 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. Коммиты, включенные в эту версию, можно найти здесь .

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

  • 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

July 2, 2019

androidx.activity:activity:1.1.0-alpha01 and androidx.activity:activity-ktx:1.1.0-alpha01 are released. Коммиты, включенные в эту версию, можно найти здесь .

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

  • 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. Коммиты, включенные в эту версию, можно найти здесь .

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

July 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 . Коммиты, включенные в эту версию, можно найти здесь .

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

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 . Коммиты, включенные в эту версию, можно найти здесь .

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

7 мая 2019 г.

androidx.activity:activity:1.0.0-alpha08 and androidx.activity:activity-ktx:1.0.0-alpha08 are released. Коммиты, включенные в эту версию, можно найти здесь .

Изменения API

  • 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. Коммиты, включенные в эту версию, можно найти здесь .

Изменения API

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

3 апреля 2019 г.

androidx.activity:activity:1.0.0-alpha06 and androidx.activity:activity-ktx:1.0.0-alpha06 are released. Коммиты, включенные в эту версию, можно найти здесь .

Изменения API

  • 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

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 )

Версия 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

  • 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

  • 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

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