Активность
Последнее обновление | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
11 декабря 2024 г. | 1.9.3 | 1.10.0-rc01 | - | - |
Объявление зависимостей
Чтобы добавить зависимость от Activity, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .
Добавьте зависимости для нужных вам артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { def activity_version = "1.9.2" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Котлин
dependencies { val activity_version = "1.9.2" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см . в документации по системе отслеживания проблем .
Версия 1.10
Версия 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-бета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 ComposePredictiveBackHandler
продолжал обрабатывать системный жест возврата в кадре, в котором он был отключен, что могло привести к тому, что такие библиотеки, как 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 содержит эти коммиты .
Обновление зависимостей
- Активность теперь зависит от Profile Installer 1.3.1 .
Версия 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 содержит эти коммиты.
Предупреждение о ворсе
- API-интерфейсы
OnBackPressedCallback
,BackHandler
иPredictiveBackHandler
теперь предупреждают при вызовеonBackPressedDispatcher.onBackPressed()
при обработке обратного вызова, так как это всегда будет нарушать Predictive Back Animation . Более подробную информацию можно найти в руководстве по передовому опыту . ( 1e4222 , 2c950d , б/287505200 )
Исправления ошибок
- Если событие возврата отправляется из системы, запущенной во время уже запущенного прогнозируемого жеста назад, текущий активный прогнозируемый жест назад отменяется, и новое событие возврата вступает во владение, чтобы начать новый прогнозируемый жест назад. ( 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. Расширения KotlinActivityResult
, которые поддерживают деструктуризацию в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 )
Обновление зависимостей
- Активность теперь зависит от Core
1.13.0-alpha01
. ( I14f31 )
Версия 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 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-бета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
в APIenableEdgeToEdge
теперь можно переопределить лямбда-параметр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.7.2
: Исправьте сбойReportDrawn
при выходе из экрана перед вызовомreport
. ( Ic46f1 , б/260506820 )
Версия 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.7.1 : —
ReportFullyDrawExecuter
больше не протекает при использованииComponentActivity
сActivityScenario
. ( Id2ff2 , б/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 , б/271596918 ) -
ComponentDialog
иComponentActivity
теперь содержат общедоступный APIinitViewTreeOwners()
который будет использоваться для инициализации всех владельцев дерева представлений перед настройкой представления содержимого. ( Ibdce0 , б/261314581 )
Исправления ошибок
- Исправлена проблема, из-за которой фрагменты неправильно признавали недействительными MenuHosts и приводили к неожиданному поведению других меню в действии. ( I9404e , б/244336571 )
Другие изменения
-
ActivityResultRegister
теперь использует KotlinRandom
вместо 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.7.0-rc01
: действие теперь зависит отLifecycle 2.6.0
.
Версия 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
прикрепленным к окну через требования APIViewTree
. -
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
принимает метод приостановки, который по завершении указывает, что вы готовы к взаимодействию.
Обновления зависимостей
- Активность теперь зависит от жизненного цикла
2.6.1
. ( 8fc31d ) - Активность теперь зависит от ProfileInstaller
1.3.0
. ( 83d3b1 )
Версия 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 содержит эти коммиты.
Обновление зависимостей
- Активность теперь зависит от
Lifecycle 2.6.0
.
Версия 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
), недоступно. APIisPhotoPickerAvailable()
, который определяет только систему Android, предоставляемую Photo Picker, устарел. Рекомендуется использовать новый APIisPhotoPickerAvailable(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 )
Обновление зависимостей
- Библиотека
Activity
теперь зависит от жизненного цикла2.5.1
. ( Если6697 )
Версия 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.5.1
: БиблиотекаActivity
теперь зависит от версииLifecycle
2.5.1
. ( Если6697 )
Версия 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 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 )
Обновление зависимости
- Библиотека
Activity
теперь зависит от жизненного цикла2.5.1
. ( IF6697 )
Версия 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
через LifeCycle2.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 содержит эти коммиты.
Обновления зависимостей
- Активность теперь зависит от жизненного цикла
2.4.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()
теперь также вызывает SuperonPanelClosed()
, решает проблему, при которой метод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-бета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-альфа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
в настоящее время содержит ошибку LintLaunchDuringComposition
, которая мешает вам вызвать метод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 )
Внешний вклад
Версия 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 в действии и сочинять конкретные обертки для взаимодействия с APIComponentActivity
для обработки кнопки «Система» и 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-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 Version1.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.2.2 : активность теперь зависит от жизненного цикла
2.3.1
.
Версия 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
, заменив APIasProvidableCompositionLocal()
. ( 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 при использовании Compose1.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 )
Обновления зависимостей
- Активность теперь зависит от жизненного цикла
2.3.1
.
Версия 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
будут работать после этого слушателя.
- Приостановление расширения Kotlin
Поддержка
ViewTree
:ComponentActivity
теперь поддерживает ViewTreelifeCycleowner.get1.1.0
LifecycleOwner
ViewTreeLifecycleOwner.get(View)
ViewModelStoreOwner
2.3.0
ViewTreeViewModelStoreOwner.get(View)
иViewTreeSavedStateRegistryOwner
APISavedStateRegistryOwner
для любых представлений, непосредственно добавленных к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-beta02 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема, в которой 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 )
- Приостановление расширения Kotlin
Исправления ошибок
- Исправлена проблема с проверкой 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-альфа05
20 мая 2020 г.
androidx.activity:activity:1.2.0-alpha05
и androidx.activity:activity-ktx:1.2.0-alpha05
выпускаются. Версия 1.2.0-Alpha05 содержит эти коммиты.
Новые возможности
- Добавлена поддержка
ViewTreeViewModelStoreOwner
из LifeCycle2.3.0-alpha03
иViewTreeSavedStateRegistryOwner
из SavedState1.1.0-alpha01
при использованииView
в рамкахComponentActivity
. ( AOSP/1297993 , AOSP/1300264 )
Изменения 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-альфа04
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-альфа03
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
. This includesgetActivityResultRegistry()
, theprepareCall()
methods, all methods ofActivityResultRegistry
exceptinvoke()
, and a number of the default contracts that do not support optional extras. ( b/152439361 )
Исправления ошибок
- Fixed a
NullPointerException
inActivityResultRegistry
when attempting to deliver results to a callback that has not yet been re-registered after a configuration change;ActivityResultRegistry
now holds onto these pending results and delivers them when the callback is re-registered. ( b/152137004 )
Версия 1.2.0-альфа02
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 anActivityResultRegistry
that lets you handle thestartActivityForResult()
+onActivityResult()
as well asrequestPermissions()
+onRequestPermissionsResult()
flows without overriding methods in your Activity or Fragment, brings increased type safety viaActivityResultContract
, 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 Lifecycle2.3.0-alpha01
such that it will return the Activity as theLifecycleOwner
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 whereonBackPressed()
would cause anIllegalStateException
due to a bug in theandroid.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 usingby viewModels()
, theViewModelProvider
constructor, orViewModelProviders.of()
with aComponentActivity
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 SavedState1.0.0-rc03
.
Версия 1.1.0-rc02
7 ноября 2019 г.
androidx.activity:activity:1.1.0-rc02
and androidx.activity:activity-ktx:1.1.0-rc02
are released. Version 1.1.0-rc02 contains these commits .
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.
Исправления ошибок
- Activity now depends on Lifecycle
2.2.0-alpha04
.
Версия 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 usingby viewModels()
, theViewModelProvider
constructor, orViewModelProviders.of()
with aComponentActivity
( b/135716331 )
Версия 1.1.0-альфа01
2 июля 2019 г.
androidx.activity:activity:1.1.0-alpha01
and androidx.activity:activity-ktx:1.1.0-alpha01
are released. Коммиты, включенные в эту версию, можно найти здесь .
Новые возможности
-
activity
now depends on Lifecycle2.2.0-alpha02
. ( aosp/1007817 ) -
activity-ktx
added a dependency onlifecycle-runtime-ktx
; you no longer need to explicitly add it to your dependencies when usingactivity-ktx
or libraries that depend onactivity-ktx
(such asfragment-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 forFragmentActivity
in Fragment1.1.0
and, by extension,AppCompatActivity
in AppCompat1.1.0
. - activity-ktx : The
activity-ktx
module includes aby viewModels
Kotlin property extension for accessing ViewModels. This module is automatically included when you includefragment-ktx
from Fragment1.1.0
. - OnBackPressedDispatcher : As a composable alternative to overriding
onBackPressed()
, you can now register aOnBackPressedCallback
from anyLifecycleOwner
(such as a fragment) to intercept system back button events. A lambda with receiver versionaddCallback
has been added toactivity-ktx
. See Provide custom back navigation documentation for more details. - onRetainCustomNonConfigurationInstance deprecation : the
onRetainCustomNonConfigurationInstance()
and the relatedgetLastCustomNonConfigurationInstance()
APIs have been deprecated. It is strongly recommended to use ViewModels to store non-configuration state as they offer a composable solution suitable for anyViewModelStoreOwner
that makes the ownership of the retained objects clear and provides anonCleared()
callback for cleaning up resources when the activity is finally destroyed.
Версия 1.0.0-rc01
2 июля 2019 г.
androidx.activity:activity:1.0.0-rc01
and androidx.activity:activity-ktx:1.0.0-rc01
are released with no changes from 1.0.0-beta01
. Коммиты, включенные в эту версию, можно найти здесь .
Версия 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
andremoveOnBackPressedCallback
methods onComponentActivity
have been removed. aosp/953857 - The
setEnabled()
andisEnabled()
methods ofOnBackPressedCallback
are now final. b/131416833 - The
remove()
method ofOnBackPressedCallback
is now final. aosp/952720 -
OnBackPressedDispatcher
now has public constructors, allowing you to construct your own instances for testing, etc. aosp/953431 -
onBackPressed()
forComponentActivity
is now explicitly marked as@MainThread
aosp/952721
Исправления ошибок
- Fixed a
ConcurrentModificationException
when callingremove()
from within thehandleOnBackPressed()
method of aOnBackPressedCalback
that was added with aLifecycleOwner
. 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
andOnBackPressedDispatcher
have been marked as@MainThread
. ( aosp/943813 ) - The
handleOnBackPressed()
method no longer returns aboolean
. Instead,OnBackPressedCallback
is now an abstract class that can be enabled or disabled - only when the newisEnabled()
method returns true willhandleOnBackPressed()
be called, in which you must handle the back button. ( aosp/944518 ) - The
addCallback
methods ofOnBackPressedDispatcher
no longer return aCancellable
instance.OnBackPressedCallback
now contain aremove()
method that fulfill this functionality, allowing you to callremove()
duringhandleOnBackPressed()
. ( aosp/944519 ) ( aosp/946316 ) -
activity-ktx
now contains a receiver scoped callback foraddCallback
that accepts a lamdba that implementshandleOnBackPressed()
and has access toisEnabled
andremove()
( 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 newOnBackPressedDispatcher
, retrievable viagetOnBackPressedDispatcher()
. ( aosp/922523 ) - Methods to add a new
OnBackPressedCallback
to theOnBackPressedDispatcher
now return aCancellable
object, allowing removal of the callback without requiring an explicit reference to theOnBackPressedDispatcher
. ( aosp/922523 ) - Adding a
OnBackPressedCallback
with an associatedLifecycleOwner
now results in adding and removing theOnBackPressedCallback
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 usingsetContentView()
. ( 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 theactivity-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 madefinal
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
viaaddOnBackPressedCallback
to receiveonBackPressed()
callbacks without needing to override the method in your activity. - Added a new
by viewModels()
Kotlin property delegate for retrievingViewModel
s from aComponentActivity
. - Pending input events (such as clicks) are now canceled in
onStop()
.
Изменения API
- The implementation of
LifecycleOwner
andViewModelStoreOwner
have been moved fromFragmentActivity
toComponentActivity
. -
onRetainCustomNonConfigurationInstance
has been deprecated. Use aViewModel
for storing objects that need to survive configuration changes.