Activity
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
8 février 2023 | 1.6.1 | - | 1.7.0-beta01 | 1.8.0-alpha01 |
Déclarer des dépendances
Pour ajouter une dépendance sur Activity, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle
de votre application ou de votre module :
Groovy
dependencies { def activity_version = "1.6.1" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.6.1" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Version 1.8
Version 1.8.0-alpha01
8 février 2023
Publication d'androidx.activity:activity:1.8.0-alpha01
, androidx.activity:activity-compose:1.8.0-alpha01
et androidx.activity:activity-ktx:1.8.0-alpha01
. Créé à partir d'une branche interne.
Nouvelles fonctionnalités
- La classe
OnBackPressedCallback
contient désormais de nouveaux rappels de progression de la prévisualisation du Retour pour gérer le démarrage du geste de retour, la progression tout au long de ce geste et son annulation en plus du rappelhandleOnBackPressed()
précédent lorsque le geste de retour est validé.
Version 1.7
Version 1.7.0-beta01
8 février 2023
Publication d'androidx.activity:activity:1.7.0-beta01
, androidx.activity:activity-compose:1.7.0-beta01
et androidx.activity:activity-ktx:1.7.0-beta01
. Liste des commits de la version 1.7.0-beta01
Nouvelles fonctionnalités
IntentSenderRequest.Builder.setFlags()
vous permet désormais de définir plusieurs indicateurs à partir d'Intent
au lieu d'un seul. (Iac04c)
Correction de bugs
- L'élément de substitution de
PickVisualMedia
lorsque le sélecteur de photos du framework est indisponible limite désormais le traitement aux applications installées sur l'image système de l'appareil. (If8ae6)
Conversions Kotlin
ActivityResultRegistryOwner
est désormais écrit en Kotlin. Il s'agit d'une modification incompatible avec la source pour les classes écrites en Kotlin. Vous devez maintenant remplacer la propriétéactivityResultRegistry
au lieu d'implémenter la fonctiongetActivityResultRegistry()
précédente. (I0b00e)OnBackPressedDispatcherOwner
est désormais écrit en Kotlin. Il s'agit d'une modification incompatible avec la source pour les classes écrites en Kotlin. Vous devez maintenant remplacer la propriétéonBackPressedDispatcher
au lieu d'implémenter la fonctiongetOnBackPressedDispatcher
précédente. (Ia277d)ContextAware
,ContextAwareHelper
,OnContextAvailableListener
,IntentSenderRequest
etOnBackPressedDispatcher
sont maintenant écrits en Kotlin. (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)
Version 1.7.0-alpha04
25 janvier 2023
Publication d'androidx.activity:activity:1.7.0-alpha04
, d'androidx.activity:activity-compose:1.7.0-alpha04
et d'androidx.activity:activity-ktx:1.7.0-alpha04
. Liste des commits de la version 1.7.0-alpha04.
Nouvelles fonctionnalités
- Les contrats Activity Result
PickVisualMedia
etPickMultipleVisualMedia
utiliseront désormais un sélecteur de photos fourni par les services Google Play, le cas échéant, lorsque le sélecteur de photos fourni par le système Android (par exemple,MediaStore.ACTION_PICK_IMAGES
) ne sera pas disponible. L'APIisPhotoPickerAvailable()
qui ne détecte que le sélecteur de photos fourni par le système Android est maintenant obsolète. Il est recommandé d'utiliser la nouvelle APIisPhotoPickerAvailable(Context)
, qui s'affichera si l'un des deux sélecteurs de photos est disponible. (I55be6)
Version 1.7.0-alpha03
11 janvier 2023
Publication d'androidx.activity:activity:1.7.0-alpha03
, d'androidx.activity:activity-compose:1.7.0-alpha03
et d'androidx.activity:activity-ktx:1.7.0-alpha03
. Liste des commits de la version 1.7.0-alpha03
Nouvelles fonctionnalités
ComponentDialog
implémente maintenantSavedStateRegistryOwner
, a accès à son propreSavedStateRegistry
et définitSavedStateRegistryOwner
pour son ViewTree. Vous pouvez désormais utiliser Jetpack Compose dansComponentDialog
, car il répond aux exigencesLifecycleOwner
etSavedStateRegistryOwner
associées à la fenêtre via les exigences des API ViewTree. (Idca17, I73468, b/261162296)
Modifications apportées à l'API
- Ajout d'un composable
ReportDrawn
qui marque immédiatement l'activité comme prête à appelerreportFullyDrawn
. (Ic5b14, b/259687964)
Conversions Kotlin
- Les classes
ActvitiyResultCallback
etOnBackPressedCallback
ont toutes deux été converties en Kotlin, tout en conservant une compatibilité source et binaire. (Ifc5e5, Ide1b0, b/257291701)
Version 1.7.0-alpha02
24 octobre 2022
Publication d'androidx.activity:activity:1.7.0-alpha02
, d'androidx.activity:activity-compose:1.7.0-alpha02
et d'androidx.activity:activity-ktx:1.7.0-alpha02
. Liste des commits de la version 1.7.0-alpha02
Correction de bugs
- Dans Activity
1.6.1
: résolution d'un problème qui empêchait le contrat de résultat d'activitéPickMultipleVisualMedia
de se lancer sur les appareils Android R lorsque la valeur par défaut demaxItems
était utilisée. (Ie2776, b/249182130)
Version 1.7.0-alpha01
5 octobre 2022
Publication d'androidx.activity:activity:1.7.0-alpha01
, d'androidx.activity:activity-compose:1.7.0-alpha01
et d'androidx.activity:activity-ktx:1.7.0-alpha01
. Liste des commits de la version 1.7.0-alpha01
API FullyDrawnReporter
ComponentActivity
fournit maintenant une instance FullyDrawnReporter
qui permet à plusieurs composants d'indiquer qu'ils sont prêts à interagir. ComponentActivity
attend que tous les composants aient terminé avant d'appeler reportFullyDrawn()
en votre nom. Ces API s'occupent des exigences temporelles et n'ont pas besoin d'être appelées dans le cadre d'un appel onDraw
.
Nous vous encourageons à activer les API suivantes :
- Envoi d'un signal à Android Runtime lorsque le démarrage est terminé pour s'assurer que tout le code exécuté au cours d'une séquence de démarrage multiframe est inclus et prioritaire pour la compilation en arrière-plan
- Envoi d'un signal à Macrobenchmark et Play Vitals lorsque votre application doit être considérée comme entièrement dessinée pour les métriques de démarrage, afin que vous puissiez suivre les performances
Deux API Activity Compose ont été ajoutées pour faciliter l'utilisation de FullyDrawnReporter
à partir de composables individuels :
ReportDrawnWhen
utilise un prédicat (par exemple,list.count > 0
) pour indiquer à quel moment votre composable est prêt à interagir.ReportDrawnAfter
utilise une méthode de suspension qui, lorsqu'elle s'achève, indique que vous êtes prêt à interagir.
Version 1.6.1
Version 1.6.1
24 octobre 2022
Publication d'androidx.activity:activity:1.6.1
, androidx.activity:activity-compose:1.6.1
et d'androidx.activity:activity-ktx:1.6.1
. Liste des commits de la version 1.6.1
Correction de bugs
- Résolution d'un problème qui empêchait le contrat de résultat d'activité
PickMultipleVisualMedia
de se lancer sur les appareils Android R lorsque la valeur par défaut demaxItems
était utilisée. (Ie2776, b/249182130)
Version 1.6.0
Version 1.6.0
21 septembre 2022
Publication d'androidx.activity:activity:1.6.0
, d'androidx.activity:activity-compose:1.6.0
et d'androidx.activity:activity-ktx:1.6.0
. Liste des commits de la version 1.6.0
Changements importants depuis la version 1.5.0
- Ajout d'
ActivityResultContracts.PickVisualMedia
et d'ActivityResultContracts.PickMultipleVisualMedia
pour fournir un contrat rétrocompatible utilisantMediaStore.ACTION_PICK_IMAGES
lorsque le sélecteur de photos est disponible etIntent.ACTION_OPEN_DOCUMENT
lorsqu'il n'est pas disponible. - Intégration d'
OnBackInvokedCallback
dans Android 13 dans lesOnBackPressedDispatchers
fournis parComponentActivity
etComponentDialog
. Cela garantit que toutes les API basées surOnBackPressedDispatcher
fonctionnent lorsque vous activez une prévisualisation du geste Retour.
Version 1.6.0-rc02
7 septembre 2022
Publication d'androidx.activity:activity:1.6.0-rc02
, d'androidx.activity:activity-compose:1.6.0-rc02
et d'androidx.activity:activity-ktx:1.6.0-rc02
. Liste des commits de la version 1.6.0-rc02
Correction de bugs
OnBackPressedDispatcher
enregistre désormaisOnBackInvokedCallback
avec laPRIORITY_DEFAULT
au lieu dePRIORITY_OVERLAY
. (I3901f)- Les deux rappels de
onMultiWindowModeChanged()
seront désormais toujours envoyés aux classes qui étendentComponentActivity
. (Ic4d85) ActivityResultRegistry
ne renvoie plus de résultat auActivityResultCallback
lorsque l'appel delaunch
génère uneException
et que le rappel a été enregistré sansLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
enverra maintenant correctement les appels du menu sans avoir à appeler la fonction Super dans votre activité. (Ie33c5, b/238057118)
Mise à jour de la dépendance
- La bibliothèque
Activity
dépend désormais de Lifecycle2.5.1
. (If6697)
Version 1.6.0-rc01
24 août 2022
Publication d'androidx.activity:activity:1.6.0-rc01
, d'androidx.activity:activity-compose:1.6.0-rc01
et d'androidx.activity:activity-ktx:1.6.0-rc01
. Liste des commits de la version 1.6.0-rc01
Correction de bugs
- L'initialisation d'un
OnBackPressedDispatcher
ne génère plus deClassVerificationError
lors de l'utilisation de versions de SDK antérieures à la version 33. (Ic32e1) - Des rappels seront toujours envoyés aux classes qui ignorent le rappel
onPictureInPictureModeChanged()
deComponentActivity
. (Ib7fdb)
Version 1.6.0-beta01
10 août 2022
Publication d'androidx.activity:activity:1.6.0-beta01
, d'androidx.activity:activity-compose:1.6.0-beta01
et d'androidx.activity:activity-ktx:1.6.0-beta01
. Liste des commits de la version 1.6.0-beta01
Modifications apportées à l'API
- Marquage des méthodes
startActivityForResult
etstartIntentSenderForResult
obsolètes surComponentActivity
avec@NonNull
, car la transmission denull
a toujours entraîné un plantage. (Id2a25, b/231476082)
Correction de bugs
- À partir de Activity
1.5.1
: leActivityResultRegistry
ne renvoie plus de résultat auActivityResultCallback
lorsque l'appel delaunch
génère uneException
et que le rappel a été enregistré sansLifecycleOwner
. (Ia7ff7, b/238350794) - À partir de Activity
1.5.1
:ComponentActivity
enverra maintenant correctement les appels du menu vers les remplacements deonPrepareOptionMenu()
,onCreateOptionsMenu()
etonOptionsItemSelected()
, sans avoir à appeler la fonction Super. (Ie33c5, b/238057118)
Mise à jour de la dépendance
- À partir de Activity
1.5.1
: la bibliothèqueActivity
dépend désormais de la version2.5.1
deLifecycle
. (If6697)
Version 1.6.0-alpha05
15 juin 2022
Publication d'androidx.activity:activity:1.6.0-alpha05
, d'androidx.activity:activity-compose:1.6.0-alpha05
et d'androidx.activity:activity-ktx:1.6.0-alpha05
. La version 1.6.0-alpha05 a été développée dans une branche de version préliminaire privée et ne comporte aucun commit public.
Modifications apportées à l'API
minCompileSdk
correspond maintenant à 33 pour s'aligner sur le SDK de Tiramisu bêta 3.
Correction de bugs
- Correction du plantage sur les appareils plus anciens lors de la vérification de l'extension SDK de
PickVisualMedia
ActivityResultContract
afin qu'elle fonctionne désormais avecACTION_OPEN_DOCUMENT
sur les appareils exécutant Android 10 ou une version antérieure.
Version 1.6.0-alpha04
18 mai 2022
Publication d'androidx.activity:activity:1.6.0-alpha04
et d'androidx.activity:activity-ktx:1.6.0-alpha04
.
Correction de bugs
- Correction d'une erreur dans
PickVisualMediaRequest
provoquant un dépassement de pile lors de la tentative de création d'une requête via le compilateur ou la fonction Kotlin de niveau supérieur. - Intégration du
OnBackInvokedCallback
dans la version Dev bêta 2 d'Android 13 dans leOnBackPressedDispatcher
fourni parComponentDialog
. Cela garantit que toutes les API basées surOnBackPressedDispatcher
fonctionnent lorsque vous activez une prévisualisation du geste Retour.
Version 1.6.0-alpha03
27 avril 2022
Publication d'androidx.activity:activity:1.6.0-alpha03
, d'androidx.activity:activity-compose:1.6.0-alpha03
et d'androidx.activity:activity-ktx:1.6.0-alpha03
.
- Remarque : Cette version ne sera compilée qu'avec le SDK de la version Developer bêta 1 d'Android 13.
Nouvelles fonctionnalités
- Ajout d'
ActivityResultContracts.PickVisualMedia
et d'ActivityResultContracts.PickMultipleVisualMedia
pour fournir un contrat rétrocompatible utilisantMediaStore.ACTION_PICK_IMAGES
lorsque le sélecteur de photos est disponible etIntent.ACTION_OPEN_DOCUMENT
lorsqu'il n'est pas disponible. - Intégration d'
OnBackInvokedCallback
dans la version Dev bêta 1 d'Android 13 dans l'OnBackPressedDispatcher
fourni parComponentActivity
. Cela garantit que toutes les API basées surOnBackPressedDispatcher
fonctionnent lorsque vous activez une prévisualisation du geste Retour.
Version 1.6.0-alpha01
23 mars 2022
Publication d'androidx.activity:activity:1.6.0-alpha01
, d'androidx.activity:activity-compose:1.6.0-alpha01
et d'androidx.activity:activity-ktx:1.6.0-alpha01
.
- Remarque : Cette version ne sera compilée qu'avec le SDK de la version Preview développeur 2 d'Android 13.
Nouvelles fonctionnalités
- Modifications intégrées de la version Preview développeur 2 d'Android 13 dans
ComponentActivity
.
Version 1.5.1
Version 1.5.1
27 juillet 2022
Publication d'androidx.activity:activity:1.5.1
, d'androidx.activity:activity-compose:1.5.1
et d'androidx.activity:activity-ktx:1.5.1
. Liste des commits de la version 1.5.1
Correction de bugs
ActivityResultRegistry
ne renvoie plus de résultat auActivityResultCallback
lorsque l'appel delaunch()
génère uneException
et que le rappel a été enregistré sansLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
enverra maintenant correctement les appels du menu vers les remplacements deonPrepareOptionMenu()
,onCreateOptionsMenu()
etonOptionsItemSelected()
, sans avoir à appeler la fonction Super. (Ie33c5, b/238057118)
Mise à jour de la dépendance
- La bibliothèque
Activity
dépend désormais de Lifecycle2.5.1
. (If6697)
Version 1.5.0
Version 1.5.0
29 juin 2022
Publication d'androidx.activity:activity:1.5.0
, d'androidx.activity:activity-compose:1.5.0
et d'androidx.activity:activity-ktx:1.5.0
. Liste des commits de la version 1.5.0
Changements importants depuis la version 1.4.0
- ComponentDialog :
ComponentDialog
est une sous-classe deDialog
comprenant unOnBackPressedDispatcher
qui sera appelé lorsque l'utilisateur appuie sur le bouton "Retour" du système et que la boîte de dialogue est visible. Il est important de noter que cette sous-classe définit également leViewTreeOnBackPressedDispatcherOwner
, ce qui permet aux vues d'utiliser un moyen générique pour récupérer le bon coordinateur, qu'il se trouve dans uneComponentActivity
ou uneComponentDialog
. - Interfaces de rappel :
ComponentActivity
implémente désormais un ensemble d'interfaces de rappel modulaires pouvant être utilisées à la place des rappels deActivity
. Parmi ces interfaces figurent les suivantes :OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
etOnMultiWindowModeChangedProvider
. - Intégration de CreationExtras :
ComponentActivity
peut désormais fournir unViewModelProvider.Factory
sans état via lesCreationExtras
de Lifecycle2.5.0
.
Autres modifications
- Abandon et remplacement du constructeur sans paramètre pour
ActivityResultContracts.CreateDocument
par un nouveau constructeur qui prend un type MIME concret (par exemple, "image/png") comme requis parIntent.ACTION_CREATE_DOCUMENT
.
Version 1.5.0-rc01
11 mai 2022
Publication d'androidx.activity:activity:1.5.0-rc01
, d'androidx.activity:activity-compose:1.5.0-rc01
et d'androidx.activity:activity-ktx:1.5.0-rc01
sans aucune modification par rapport à la version 1.5.0-beta01. Liste des commits de la version 1.5.0-rc01.
Version 1.5.0-beta01
20 avril 2022
Publication d'androidx.activity:activity:1.5.0-beta01
, d'androidx.activity:activity-compose:1.5.0-beta01
et d'androidx.activity:activity-ktx:1.5.0-beta01
. Liste des commits de la version 1.5.0-beta01
Mises à jour des dépendances
- Activity dépend désormais de Lifecycle
2.4.0-beta01
.
Version 1.5.0-alpha05
6 avril 2022
Publication d'androidx.activity:activity:1.5.0-alpha05
, d'androidx.activity:activity-compose:1.5.0-alpha05
et d'androidx.activity:activity-ktx:1.5.0-alpha05
. Liste des commits de la version 1.5.0-alpha05.
Correction de bugs
onPanelClosed()
deComponentActivity
appelle désormais également la fonction SuperonPanelClosed()
, ce qui résout le problème où la méthodeonContextMenuClosed
n'était pas appelée. (Ib6f77)
Version 1.5.0-alpha04
23 mars 2022
Publication d'androidx.activity:activity:1.5.0-alpha04
, d'androidx.activity:activity-compose:1.5.0-alpha04
et d'androidx.activity:activity-ktx:1.5.0-alpha04
. Liste des commits de la version 1.5.0-alpha04.
Correction de bugs
SavedStateViewFactory
est désormais compatible avecCreationExtras
, même lorsqu'ils ont été initialisés avec unSavedStateRegistryOwner
. Les arguments initialisés sont ignorés si des éléments supplémentaires sont fournis. (I6c43b, b/224844583)
Version 1.5.0-alpha03
23 février 2022
Publication d'androidx.activity:activity:1.5.0-alpha03
, d'androidx.activity:activity-compose:1.5.0-alpha03
et d'androidx.activity:activity-ktx:1.5.0-alpha03
. Liste des commits de la version 1.5.0-alpha03
Modifications apportées à l'API
- Vous pouvez maintenant transmettre
CreationExtras
à la fonctionby viewModels()
de l'activité. (I6a3e6, b/217600303)
Version 1.5.0-alpha02
9 février 2022
Publication d'androidx.activity:activity:1.5.0-alpha02
, d'androidx.activity:activity-compose:1.5.0-alpha02
et d'androidx.activity:activity-ktx:1.5.0-alpha02
. Liste des commits de la version 1.5.0-alpha02
Nouvelles fonctionnalités
ComponentActivity
implémente désormais l'interfaceOnPictureInPictureModeChangedProvider
pour permettre à n'importe quel composant de recevoir des événements de modification du mode Picture-in-picture. (I9f567)ComponentActivity
implémente désormais l'interfaceOnMultiWindowModeChangedProvider
pour permettre à n'importe quel composant de recevoir des événements de modification du mode multifenêtre. (I62d91)
Version 1.5.0-alpha01
26 janvier 2022
Publication d'androidx.activity:activity:1.5.0-alpha01
, d'androidx.activity:activity-compose:1.5.0-alpha01
et d'androidx.activity:activity-ktx:1.5.0-alpha01
. Liste des commits de la version 1.5.0-alpha01
Nouvelles fonctionnalités
ComponentActivity
s'intègre désormais avec ViewModel CreationExtras, qui a été introduit dans Lifecycle2.5.0-alpha01
. (Ie7e00, b/207012584)- Ajout de
ComponentDialog
, une sous-classe deDialog
qui comprend unOnBackPressedDispatcher
qui sera appelé lorsque l'utilisateur appuie sur le bouton "Retour" du système lorsque la boîte de dialogue est visible. Il est important de noter que cette sous-classe définit également leViewTreeOnBackPressedDispatcherOwner
, ce qui permet aux vues d'utiliser un moyen générique pour récupérer le bon coordinateur, qu'il se trouve dans uneComponentActivity
ou uneComponentDialog
. (I8a1bc) ComponentActivity
implémente désormais la nouvelle interfaceOnNewIntentProvider
pour permettre à n'importe quel composant de recevoir ces événements. (If1f8b)ComponentActivity
implémente désormais la nouvelle interfaceOnConfigurationChangedProvider
pour permettre à n'importe quel composant de recevoir ces événements. (If623b)ComponentActivity
implémente désormais la nouvelle interfaceOnTrimMemoryProvider
pour permettre à n'importe quel composant de recevoir ces événements. (Ia9295)
Modifications apportées à l'API
- Abandon et remplacement du constructeur sans paramètre pour
ActivityResultContracts.CreateDocument
par un nouveau constructeur qui prend un type MIME concret (par exemple,"image/png"
) comme requis parIntent.ACTION_CREATE_DOCUMENT
. (I2bec6) - Le
OnBackPressedDispatcherOwner
associé à View peut désormais être récupéré viaViewTreeOnBackPressedDispatcherOwner
, au lieu de compter sur la diffusion duContext
. (I74685)
Correction de bugs
- Correction d'un plantage survenant lors du premier accès au
ViewModel
à partir d'un rappel deregisterForActivityResult()
ou de rappels d'unLifecycleObserver
ajoutés dansinit
d'uneComponentActivity
. (Ife83f)
Version 1.4.0
Version 1.4.0
27 octobre 2021
Publication d'androidx.activity:activity:1.4.0
, d'androidx.activity:activity-compose:1.4.0
et d'androidx.activity:activity-ktx:1.4.0
. Liste des commits de la version 1.4.0
Changements importants depuis la version 1.3.0
ComponentActivity
d'AndroidX implémente maintenant l'interfaceMenuHost
. Tous les composants peuvent ainsi ajouter des éléments de menu à laActionBar
en ajoutant une instanceMenuProvider
à l'activité. ChaqueMenuProvider
peut éventuellement être ajouté avec unLifecycle
qui contrôlera automatiquement la visibilité de ces éléments de menu en fonction de l'étatLifecycle
et gérera la suppression duMenuProvider
lorsque leLifecycle
est détruit.- La classe
ActivityResultContract
a été réécrite en Kotlin pour s'assurer que les développeurs qui écrivent des contrats personnalisés en Kotlin puissent définir la possibilité de valeur nulle correcte pour leurs classes d'entrée et de sortie. - La classe
ActivityResultContracts
et ses contrats ont été réécrits en Kotlin pour obtenir une possibilité de valeur nulle correcte.
Version 1.4.0-rc01
13 octobre 2021
Publication d'androidx.activity:activity:1.4.0-rc01
, d'androidx.activity:activity-compose:1.4.0-rc01
et d'androidx.activity:activity-ktx:1.4.0-rc01
. Liste des commits de la version 1.4.0-rc01
Correction de bugs
ActivityResultRegistry
ne renvoie plus de résultat auActivityResultCallback
lorsque l'appel delaunch
génère uneException
. (If4f91, b/200845664)
Version 1.4.0-beta01
29 septembre 2021
Publication d'androidx.activity:activity:1.4.0-beta01
, d'androidx.activity:activity-compose:1.4.0-beta01
et d'androidx.activity:activity-ktx:1.4.0-beta01
. Liste des commits de la version 1.4.0-beta01
Modifications apportées à l'API
- Correction du type des
ActivityResultContracts.OpenMultipleDocuments
etActivityResultContracts.GetMultipleContents
entraînant l'utilisation du type de sortie deList<? extends Uri>
lors de l'utilisation du code du langage de programmation Java. (If71de) - Les constantes publiques des classes
ActivityResultContracts.StartActivityForResult
,ActivityResultContracts.StartIntentSenderForResult
etActivityResultContracts.RequestMultiplePermissions
sont désormais accessibles lorsque vous utilisez Kotlin via leurs objetsCompanion
publics. (aosp/1832555)
Mises à jour de la documentation
- Le message d'abandon des API, désormais gérées par les API Activity Result, à savoir
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
etonRequestPermissionsResult
, comporte davantage de détails. (cce80f)
Version 1.4.0-alpha02
15 septembre 2021
Publication d'androidx.activity:activity:1.4.0-alpha02
, d'androidx.activity:activity-compose:1.4.0-alpha02
et d'androidx.activity:activity-ktx:1.4.0-alpha02
. Liste des commits de la version 1.4.0-alpha02
Nouvelles fonctionnalités
- L'artefact
activity-compose
contient maintenant une erreur de lintLaunchDuringComposition
qui vous empêche d'appeler la méthodelaunch
deActivityResultLauncher
dans la composition, car celle-ci ne doit pas avoir d'effets secondaires. Utilisez les API pour la gestion des effets secondaires. (7c2bbe, b/191347220)
Modifications apportées à l'API
- La classe
ActivityResultContract
a été réécrite en Kotlin pour s'assurer que les développeurs qui écrivent des contrats personnalisés en Kotlin puissent définir la possibilité de valeur nulle correcte pour leurs classes d'entrée et de sortie. (I8a8f5) - La classe
ActivityResultContracts
et ses contrats ont été réécrits en Kotlin pour obtenir une possibilité de valeur nulle correcte. (I69802)
Version 1.4.0-alpha01
1er septembre 2021
Publication d'androidx.activity:activity:1.4.0-alpha01
, d'androidx.activity:activity-compose:1.4.0-alpha01
et d'androidx.activity:activity-ktx:1.4.0-alpha01
. Liste des commits de la version 1.4.0-alpha01
Nouvelles fonctionnalités
ComponentActivity
d'AndroidX implémente maintenant l'interfaceMenuHost
. Tous les composants peuvent ainsi ajouter des éléments de menu à laActionBar
en ajoutant une instanceMenuProvider
à l'activité. ChaqueMenuProvider
peut éventuellement être ajouté avec unLifecycle
qui contrôlera automatiquement la visibilité de ces éléments de menu en fonction de l'étatLifecycle
et gérera la suppression duMenuProvider
lorsque leLifecycle
est détruit. (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)
}
Nouveaux comportements
- Le
ActivityResultRegistry
génère désormais uneIllegalStateException
lors d'une tentative d'appel delaunch()
sur unActivityResultLauncher
qui n'a pas été enregistré ou dont l'enregistrement a été annulé. (Ida75d, b/192567522)
Contribution externe
- Nous remercions dmitrilc pour la correction d'une faute de frappe dans la documentation sur
ActivityResult
. (#221)
Version 1.3.1
Version 1.3.1
4 août 2021
Publication d'androidx.activity:activity:1.3.1
, d'androidx.activity:activity-compose:1.3.1
et d'androidx.activity:activity-ktx:1.3.1
. Liste des commits de la version 1.3.1.
Mises à jour des dépendances
- Activity dépend désormais de Kotlin
1.5.21
. - Activity Compose dépend désormais de Compose
1.0.1
.
Version 1.3.0
Version 1.3.0
28 juillet 2021
Publication d'androidx.activity:activity:1.3.0
, d'androidx.activity:activity-compose:1.3.0
et d'androidx.activity:activity-ktx:1.3.0
. Liste des commits de la version 1.3.0
Changements importants depuis la version 1.2.0
- Artefact Activity Compose : l'artefact
activity-compose
fournit la méthode d'extensionsetContent
pour héberger votre UI Jetpack Compose dans une activité, ainsi que des wrappers spécifiques à Compose pour interagir avec les APIComponentActivity
pour la gestion du bouton "Retour" du système et des API Activity Result. Consultez la documentation pour en savoir plus. - Contrat CaptureVideo :
CaptureVideo
ActivityResultContract
remplace le contratTakeVideo
, désormais obsolète, et renvoie une valeur booléenne indiquant la réussite de l'opération, qui fonctionne avec de nombreuses applications d'appareil photo. - Suivi de la vue optimisée Picture-in-picture : les utilisateurs de
activity-ktx
peuvent désormais utiliser la méthode d'extensiontrackPipAnimationHintView
surActivity
pour recréer automatiquement lesPictureInPictureParams
avec la nouvelle position de la vue lorsqu'elle change de position par rapport à la fenêtre.
Version 1.3.0-rc02
14 juillet 2021
Publication d'androidx.activity:activity:1.3.0-rc02
, d'androidx.activity:activity-compose:1.3.0-rc02
et d'androidx.activity:activity-ktx:1.3.0-rc02
. Liste des commits de la version 1.3.0-rc02.
Correction de bugs
- Les rappels de
ActivityResultRegistry
sont maintenant correctement enregistrés et restaurés. Les rappels ne sont donc pas dupliqués dans "savedState". (I97816, b/191893160)
Version 1.3.0-rc01
1er juillet 2021
Publication d'androidx.activity:activity:1.3.0-rc01
, d'androidx.activity:activity-compose:1.3.0-rc01
et d'androidx.activity:activity-ktx:1.3.0-rc01
sans aucune modification par rapport à la version 1.3.0-beta02
. Liste des commits de la version 1.3.0-rc01.
Version 1.3.0-beta02
16 juin 2021
Publication d'androidx.activity:activity:1.3.0-beta02
, d'androidx.activity:activity-compose:1.3.0-beta02
et d'androidx.activity:activity-ktx:1.3.0-beta02
. Liste des commits de la version 1.3.0-beta02.
Mise à jour de activity-compose
pour dépendre de Compose 1.0.0-beta09
. androidx.compose.ui:ui-test-junit4
comporte désormais une dépendance de temps de compilation sur activity-compose
.
Version 1.3.0-beta01
2 juin 2021
Publication d'androidx.activity:activity:1.3.0-beta01
, d'androidx.activity:activity-compose:1.3.0-beta01
et d'androidx.activity:activity-ktx:1.3.0-beta01
. Liste des commits de la version 1.3.0-beta01.
Modifications apportées à l'API
- La méthode
@Composable registerForActivityResult()
, qui était obsolète, a été supprimée. Veuillez utiliserrememberLauncherForActivityResult()
. (Ic39d3)
Version 1.3.0-alpha08
18 mai 2021
Publication d'androidx.activity:activity:1.3.0-alpha08
, d'androidx.activity:activity-compose:1.3.0-alpha08
et d'androidx.activity:activity-ktx:1.3.0-alpha08
. Liste des commits de la version 1.3.0-alpha08.
Nouvelles fonctionnalités
- Le nouveau
ActivityResultContract
deCaptureVideo
renvoie une valeur booléenne à votreActivityResultCallback
pour indiquer si votre vidéo a bien été enregistrée dans l'URI donné. Cela remplace le contratTakeVideo
, désormais obsolète, car les applications d'appareil photo sont très rarement compatibles avec le renvoi d'un bitmap miniature. Le résultat est donc inutile. (Ie21f2, b/185938070) - Ajout de l'API
Activity#setPipAnimationHintView
pour mettre à jour l'optimisation rect source des "PipParams" chaque fois que la vue se déplace. (I9063d)
Modifications apportées à l'API
- La fonction
rememberLauncherForActivityResult
renvoie désormais un lanceur d'applications qui abandonne la fonctionunregister()
. L'enregistrement et l'annulation de l'enregistrement du lanceur d'applications sont automatiquement gérés parrememberLauncherForActivityResult
. (I2443e)
Compatibilité avec Compose
androidx.activity:activity-compose:1.3.0-alpha08
n'est compatible qu'avec les versions1.0.0-beta07
et ultérieures de Compose.
Version 1.3.0-alpha07
21 avril 2021
Publication d'androidx.activity:activity:1.3.0-alpha07
, d'androidx.activity:activity-compose:1.3.0-alpha07
et d'androidx.activity:activity-ktx:1.3.0-alpha07
. Liste des commits de la version 1.3.0-alpha07.
Correction de bugs
rememberLauncherForActivityResult
renvoie désormais une référence stable à la même instanceActivityResultLauncher
, même si le contrat change en raison de recompositions. (Id2d6d)- L'utilisation de versions instables de Fragment ultérieures à la version
1.3.0
ne générera plus d'erreur de lint faux positif vous invitant à utiliser la version1.3.0
. (aosp/1670206, b/184847092)
Version 1.3.0-alpha06
7 avril 2021
Publication d'androidx.activity:activity:1.3.0-alpha06
, d'androidx.activity:activity-compose:1.3.0-alpha06
et d'androidx.activity:activity-ktx:1.3.0-alpha06
. Liste des commits de la version 1.3.0-alpha06.
Modifications apportées à l'API
- Remplacement du nom de l'API
registerForActivityResult()
parrememberLauncherForActivityResult()
afin de mieux indiquer que leActivityResultLauncher
renvoyé est un objet géré qui est mémorisé en votre nom. Si vous tentez d'appelerunregister
, leActivityResultLauncher
renvoyé génère une erreur. (I2bb6d) LocalOnBackPressedDispatcherOwner.current
etLocalActivityResultRegistryOwner.current
renvoient désormais une possibilité de valeur nulle pour mieux déterminer si elle est disponible dans la composition actuelle. Les API qui nécessitent ces API, telles queBackHandler
etrememberLauncherForActivityResult()
, génèrent désormais une erreur plus descriptive si le propriétaire associé est introuvable. LeNavHost
fonctionne désormais même si l'OnBackPressedDispatcherOwner
est introuvable, par exemple, lors de la prévisualisation duNavHost
. (I7d8b4)
Correction de bugs
- Désormais, le
BackHandler
intercepte correctement les appuis sur le bouton "Retour" si Activity estSTOPPED
, puis à nouveauSTARTED
. Des rappels supplémentaires ont également été ajoutés avec un "LifecycleOwner". (I71de6, b/182284739) - L'utilisation de l'extension de méthode
launch()
avec unActivityResultContract
personnalisé ayant une entréeUnit
n'entraînera plus deNullPointerException
. (I76282, b/183837954)
Version 1.3.0-alpha05
24 mars 2021
Publication d'androidx.activity:activity:1.3.0-alpha05
, d'androidx.activity:activity-compose:1.3.0-alpha05
et d'androidx.activity:activity-ktx:1.3.0-alpha05
. Liste des commits de la version 1.3.0-alpha05.
Correction de bugs
- À partir de Activity 1.2.2 : correction d'un problème lié à la vérification lint
InvalidFragmentVersionForActivityResult
provoquant un faux positif lors de l'utilisation de Fragment 1.3.1 ou version ultérieure. (I54da1, b/182388985) - À partir de Activity 1.2.2 :
ComponentActivity
évite désormais uneClassNotFoundException
lors du lancement d'uneIntent
à partir d'unActivityResultContract
précédemment considéré comme un élément supplémentaire dans une autreIntent
. (Ieff05, b/182906230)
Mises à jour des dépendances
- À partir de Activity 1.2.2 : Activity dépend désormais de Lifecycle
2.3.1
.
Version 1.3.0-alpha04
10 mars 2021
Publication d'androidx.activity:activity:1.3.0-alpha04
, d'androidx.activity:activity-compose:1.3.0-alpha04
et d'androidx.activity:activity-ktx:1.3.0-alpha04
. Liste des commits de la version 1.3.0-alpha04.
Correction de bugs
- À partir de Activity
1.2.1
:RequestMultiplePermissions
renvoient désormais toujours les résultats pour toutes les autorisations demandées, et non plus seulement pour celles qui n'ont pas été précédemment accordées. (I50bc3, b/180884668) - À partir d'Activity
1.2.1
:ActivityResultRegistry
vous permet désormais de vous assurer que les demandeslaunch()
en cours renvoient leurs résultats même si vous exécutez une actionunregister()
, puis une actionregister()
à nouveau avec la même clé. (I9ef34, b/181267562) - Activity Compose n'ajoute plus de dépendances de test au chemin de classe d'exécution. (Ifd8b3)
- Correction d'un problème lié à
BackHandler
dans lequel le lambdaonBack
précédemment défini était encore utilisé après la recomposition. (8eb5eb)
Version 1.3.0-alpha03
24 février 2021
Publication d'androidx.activity:activity:1.3.0-alpha03
, d'androidx.activity:activity-compose:1.3.0-alpha03
et d'androidx.activity:activity-ktx:1.3.0-alpha03
. Liste des commits de la version 1.3.0-alpha03
Nouvelles fonctionnalités
- Il existe désormais une fonction
registerForActivityResult
modulable permettant d'obtenir les résultats des activités au sein des composables. (Ia7851, b/172690553)
Modifications apportées à l'API
LocalOnBackPressedDispatcherOwner
dispose désormais d'une fonctionprovides
pouvant être utilisée avecCompositionLocalProvider
, en remplacement de l'APIasProvidableCompositionLocal()
. (I45d24)
Version 1.3.0-alpha02
10 février 2021
Publication d'androidx.activity:activity:1.3.0-alpha02
, d'androidx.activity:activity-compose:1.3.0-alpha02
et d'androidx.activity:activity-ktx:1.3.0-alpha02
. Liste des commits de la version 1.3.0-alpha02.
Correction de bugs
- Correction d'un problème dans Activity Compose
1.3.0-alpha01
qui entraînait une exceptionNoSuchMethodError: No static method setContent
lors de l'utilisation de Compose1.0.0-alpha12
. Tous les utilisateurs de Compose doivent dépendre de la version1.3.0-alpha02
ou ultérieure. (b/179911234)
Modifications apportées à l'API
- L'API
BackHandler
peut être utilisée pour permettre à un composable d'intercepter le bouton "Retour" du système. (I58ed5, b/172154006)
Version 1.3.0-alpha01
10 février 2021
Publication d'androidx.activity:activity:1.3.0-alpha01
, d'androidx.activity:activity-compose:1.3.0-alpha01
et d'androidx.activity:activity-ktx:1.3.0-alpha01
. Liste des commits de la version 1.3.0-alpha01.
Nouvelles fonctionnalités
- Le nouvel artefact
activity-compose
fournit des assistants spécifiques à Jetpack Compose pour des APIandroidx.activity
spécifiques.ComponentActivity.setContent
a été déplacé deandroidx.compose.ui.platform.setContent
versandroidx.activity.compose.setContent
. (Icf416)
Problèmes connus
- L'utilisation d'Activity Compose
1.3.0-alpha01
et des bibliothèques qui en dépendent, telles queandroidx.compose.ui:ui-test-junit4:1.0.0-alpha12
, entraînera une exceptionNoSuchMethodError: No static method setContent
. (b/179911234)
Version 1.2.4
Version 1.2.4
21 juillet 2021
Publication d'androidx.activity:activity:1.2.4
et d'androidx.activity:activity-ktx:1.2.4
. Liste des commits de la version 1.2.4.
Correction de bugs
- À partir de Activity
1.3.0-rc02
: les rappels "ActivityResultRegistry" sont maintenant correctement enregistrés et restaurés. Les rappels ne sont donc pas dupliqués dans le "savedState". (I97816, b/191893160)
Version 1.2.3
Version 1.2.3
5 mai 2021
Publication d'androidx.activity:activity:1.2.3
et d'androidx.activity:activity-ktx:1.2.3
. Liste des commits de la version 1.2.3.
Correction de bugs
- L'utilisation de l'extension de méthode
launch()
avec unActivityResultContract
personnalisé ayant une entréeUnit
n'entraînera plus deNullPointerException
. (I76282, b/183837954) - Correction d'une erreur de lint faux positif vous indiquant d'utiliser Fragment
1.3.0
lors de l'exécution d'un instantané, d'une version alpha, bêta ou finale d'une nouvelle version de Fragment. (f4a57e, b/184847092)
Version 1.2.2
Version 1.2.2
24 mars 2021
Publication d'androidx.activity:activity:1.2.2
et d'androidx.activity:activity-ktx:1.2.2
. Liste des commits de la version 1.2.2.
Correction de bugs
- Correction d'un problème lié à la vérification lint
InvalidFragmentVersionForActivityResult
provoquant un faux positif lors de l'utilisation de Fragment 1.3.1 ou version ultérieure. (I54da1, b/182388985) ComponentActivity
évite désormais uneClassNotFoundException
lors du lancement d'uneIntent
à partir d'unActivityResultContract
précédemment considéré comme un élément supplémentaire dans une autreIntent
. (Ieff05, b/182906230)
Mises à jour des dépendances
- Activity dépend désormais de Lifecycle
2.3.1
.
Version 1.2.1
Version 1.2.1
10 mars 2021
Publication d'androidx.activity:activity:1.2.1
et d'androidx.activity:activity-ktx:1.2.1
. Liste des commits de la version 1.2.1
Correction de bugs
RequestMultiplePermissions
renvoient désormais toujours les résultats pour toutes les autorisations demandées, et non plus seulement pour celles qui n'ont pas été précédemment accordées. (I50bc3, b/180884668)ActivityResultRegistry
vous permet désormais de vous assurer que les demandeslaunch()
en cours renvoient leurs résultats même si vousunregister()
, puisregister()
à nouveau avec la même clé. (I9ef34, b/181267562)
Version 1.2.0
Version 1.2.0
10 février 2021
Publication d'androidx.activity:activity:1.2.0
et d'androidx.activity:activity-ktx:1.2.0
. Liste des commits de la version 1.2.0
Principales modifications depuis la version 1.1.0
- API Activity Result :
ComponentActivity
fournit désormais unActivityResultRegistry
qui vous permet de gérer les fluxstartActivityForResult()
+onActivityResult()
etrequestPermissions()
+onRequestPermissionsResult()
sans remplacer les méthodes de votre Activity ou Fragment. En outre, il fournit un type de sécurité renforcée viaActivityResultContract
et des hooks pour tester ces flux. Consultez la section Obtenir un résultat depuis Activity mise à jour.
ContextAware
:ComponentActivity
implémente désormaisContextAware
, ce qui vous permet d'ajouter une ou plusieurs instances deOnContextAvailableListener
qui recevront un rappel avant la baseActivity.onCreate()
.- Une extension Kotlin
withContextAvailable()
de suspension vous permet d'exécuter un bloc sans suspension lorsque le contexte devient disponible et de renvoyer un résultat. - Cette API est utilisée par
FragmentActivity
dans Fragment 1.3.0 pour restaurer l'état deFragmentManager
. Tous les écouteurs ajoutés aux sous-classes deFragmentActivity
s'exécutent après cet écouteur. - Cette API est utilisée par
AppCompatActivity
dans AppCompat 1.3.0-alpha02 ou version ultérieure. Tous les écouteurs ajoutés aux sous-classes deAppCompatActivity
s'exécutent après cet écouteur.
- Une extension Kotlin
Compatibilité de
ViewTree
:ComponentActivity
est désormais compatible avec les APIViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
etViewTreeSavedStateRegistryOwner
ajoutées à Lifecycle2.3.0
et SavedState1.1.0
de sorte qu'il renvoie Activity en tant queLifecycleOwner
,ViewModelStoreOwner
etSavedStateRegistryOwner
pour chaque View directement ajoutée àComponentActivity
.
- reportFullyDrawn() backport : la méthode
Activity
dereportFullyDrawn()
a été rétroportée dansComponentActivity
pour fonctionner à tous les niveaux d'API. Elle a permis de corriger un plantage de l'API 19 et d'ajouter un traçage de cette méthode pour tous les niveaux d'API.
Version 1.2.0-rc01
16 décembre 2020
Publication d'androidx.activity:activity:1.2.0-rc01
et d'androidx.activity:activity-ktx:1.2.0-rc01
. Liste des commits de la version 1.2.0-rc01.
Correction de bugs
- Le
ActivityResultRegistry
restaure désormais toujours l'état exact enregistré. (Idd56b) - Ajout d'un traçage à
ComponentActivity.reportFullyDrawn
. (Ic7632)
Contribution externe
ComponentActivity
remplace désormaisreportFullyDrawn()
, ce qui lui permet d'être appelé à tous les niveaux d'API et de corriger un plantage lors de l'appel de cette méthode sans les autorisations système appropriées sur les appareils utilisant l'API 19. Nous remercions Simon Schiller. (b/163239764, #103)
Version 1.2.0-beta02
2 décembre 2020
Publication d'androidx.activity:activity:1.2.0-beta02
et d'androidx.activity:activity-ktx:1.2.0-beta02
. Liste des commits de la version 1.2.0-beta02.
Correction de bugs
- Correction d'un problème dans lequel l'API Activity Result n'attendait pas que Lifecycle soit
STARTED
avant d'afficher les résultats lors de l'enregistrement avec unLifecycle
. (I109ea)
Contribution externe
- Mise à jour de la documentation sur
launch()
pour indiquer explicitement qu'elle peut générer uneActivityNotFoundException
. Nous remercions Michał Zieliński. (aosp/1493580)
Version 1.2.0-beta01
1er octobre 2020
Publication d'androidx.activity:activity:1.2.0-beta01
et d'androidx.activity:activity-ktx:1.2.0-beta01
. Liste des commits de la version 1.2.0-beta01
Correction de bugs
Le
ActivityResultRegistry
génère désormais des entiers de manière aléatoire jusqu'à ce qu'il en trouve un qui n'est pas assigné àregister()
comme code de requête, ce qui permet d'éviter un éventuel dépassement des entiers causé par l'incrémentation des codes de requête. (b/168779518)Les observateurs de
Lifecycle
sont correctement supprimés lors de l'appel deunregister()
sur unActivityResultLauncher
. (b/165608393)
Nouveaux comportements
- Le
ActivityResultRegistry
génère maintenant uneIllegalStateException
lors d'une tentative d'appel deregister()
avec unLifecycleOwner
dont leLifecycle
a déjà atteintSTARTED
. (b/165435866)
Documentation mise à jour
- La documentation de
ContextAware
contient un lien versLifecycleOwner
pour mettre en évidence que les rappels deLifecycle
conviennent parfaitement pour les événements de création et de destruction. (aosp/1414152)
Version 1.2.0-alpha08
19 août 2020
Publication d'androidx.activity:activity:1.2.0-alpha08
et d'androidx.activity:activity-ktx:1.2.0-alpha08
. Liste des commits de la version 1.2.0-alpha08.
Nouvelles fonctionnalités
ComponentActivity
implémente maintenantContextAware
, ce qui vous permet d'ajouter une ou plusieurs instances deOnContextAvailableListener
qui recevront un rappel avant la baseActivity.onCreate()
. (b/161390636)- Une extension Kotlin
withContextAvailable()
de suspension vous permet d'exécuter un bloc sans suspension lorsque le contexte devient disponible et de renvoyer un résultat. (I8290c) - Cette API est utilisée par
FragmentActivity
dans Fragment 1.3.0-alpha08 pour restaurer l'état deFragmentManager
. Tous les écouteurs ajoutés aux sous-classes deFragmentActivity
s'exécutent après cet écouteur. (I513da) - Cette API est utilisée par
AppCompatActivity
dans AppCompat 1.3.0-alpha02. Tous les écouteurs ajoutés aux sous-classes deAppCompatActivity
s'exécutent après cet écouteur. (I513da)
- Une extension Kotlin
Correction de bugs
- Correction d'un problème lié à la vérification lint
ActivityResultFragmentVersionDetector
entraînant un dysfonctionnement lors de l'utilisation de Lint 27.1.0 ou version ultérieure. (b/162155191)
Version 1.2.0-alpha07
22 juillet 2020
Publication d'androidx.activity:activity:1.2.0-alpha07
et d'androidx.activity:activity-ktx:1.2.0-alpha07
. Liste des commits de la version 1.2.0-alpha07.
Nouvelles fonctionnalités
- Ajout d'une vérification lint
InvalidFragmentVersionForActivityResult
qui vérifie que vous utilisez Fragment1.3.0-alpha07
lorsque vous utilisez l'API Activity Result, ce qui permet d'éviter les plantages de l'environnement d'exécution dus à des problèmes de "code de requête non valide" et le dysfonctionnement des demandes d'autorisation en raison de l'utilisation d'anciennes versions de Fragment. (b/152554847)
Contribution externe
- Correction d'une
ArrayIndexOutOfBoundsException
lors de l'analyse des résultats du contrat Activity Result deRequestPermission
. (I8f9e3, b/161057605)
Version 1.2.0-alpha06
10 juin 2020
Publication d'androidx.activity:activity:1.2.0-alpha06
et d'androidx.activity:activity-ktx:1.2.0-alpha06
. Liste des commits de la version 1.2.0-alpha06.
Nouvelles fonctionnalités
- Vous pouvez maintenant déstructurer la classe
ActivityResult
en Kotlin pour accéder directement àrequestCode
etintent
. (b/157212935) ActivityResultLauncher
vous permet maintenant d'obtenir leActivityResultContract
qui a été utilisé pour enregistrer le lanceur d'applications. (b/156875743)
Modifications apportées à l'API
- Modification destructive : Remplacement du nom de la méthode
invoke()
paronLaunch()
dansActivityResultRegistry
. (b/157496491) - Le contrat
OpenMultipleDocuments
renvoie désormais une liste vide au lieu denull
au rappel enregistré si aucun résultat n'est renvoyé. (b/157348014)
Version 1.2.0-alpha05
20 mai 2020
Publication d'androidx.activity:activity:1.2.0-alpha05
et d'androidx.activity:activity-ktx:1.2.0-alpha05
. Liste des commits de la version 1.2.0-alpha05
Nouvelles fonctionnalités
- Ajout de la prise en charge de
ViewTreeViewModelStoreOwner
à partir de Lifecycle2.3.0-alpha03
et deViewTreeSavedStateRegistryOwner
à partir de SavedState1.1.0-alpha01
lorsque vous utilisez uneView
dans uneComponentActivity
. (aosp/1297993, aosp/1300264)
Modifications apportées à l'API
- Le contrat
TakePicture
renvoie désormais uneboolean
indiquant la réussite de l'opération plutôt qu'unBitmap
miniature, car cela n'était que très rarement compatible avec les applications d'appareil photo lors de l'écriture de l'image dans leUri
fourni. (b/154302879) - Suppression des extensions
invoke()
dansActivityResultLauncher
. Elles ont été explicitement remplacées par l'utilisation delaunch()
pour mieux indiquer qu'il s'agit d'opérations asynchrones. Les extensions de Kotlin pourlaunch
ont été ajoutées au packageandroidx.activity.result
pourActivityResultLauncher<Void>
etActivityResultLauncher<Unit>
, éliminant ainsi la nécessité de transmettre respectivementnull
ouUnit
, ce qui reproduit le comportement des extensionsinvoke()
précédentes. (aosp/1304674, aosp/1304675) - Les méthodes
IntentSenderRequest.Builder
poursetFlagsMask()
etsetFlagsValues()
ont été combinées en une seule méthodesetFlags()
. (aosp/1302111)
Correction de bugs
- Correction d'un problème, lors de l'enregistrement d'un
ActivityResultCallback
avec unLifecycleOwner
, qui entraînait le déclenchement du rappel avant que l'état n'atteigneSTARTED
. (aosp/1309744)
Nouveaux comportements
- Le
ActivityResultRegistry
génère désormais des codes de requête commençant par0xFFFF
et non plus par0
, ce qui évite les chevauchements lorsque vous utilisezstartActivityForResult()
ourequestPermissions()
dans une activité. (aosp/1302324)
Version 1.2.0-alpha04
29 avril 2020
Publication d'androidx.activity:activity:1.2.0-alpha04
et d'androidx.activity:activity-ktx:1.2.0-alpha04
. Liste des commits de la version 1.2.0-alpha04.
Nouvelles fonctionnalités
- Ajout d'un contrat pouvant appeler "startIntentSenderForResult" pour les API ActivityResult. (b/153007517)
Modifications apportées à l'API
- La méthode
prepareCall()
a été renomméeregisterForActivityResult()
, à la fois dansComponentActivity
et dans Fragment1.3.0-alpha04
. (aosp/1278717) - Les contrats
GetContents
,OpenDocuments
etRequestPermissions
ont été renommésGetMultipleContents
,OpenMultipleDocuments
etRequestMultiplePermissions
, respectivement. (aosp/1280161) ComponentActivity
implémente maintenant l'interfaceActivityResultRegisteryOwner
. (aosp/1290888)- Abandon des API
startActivityForResult()
/onActivityResult()
etonRequestPermissionsResult()
dansComponentActivity
. Veuillez utiliser les API Activity Result. (b/154751887)
Correction de bugs
- Lorsque vous utilisez les contrats
GetMultipleContents
etOpenMultipleDocuments
et que vous sélectionnez un seul élément, il est désormais correctement renvoyé à votre rappel. (b/152941153)
Version 1.2.0-alpha03
1er avril 2020
Publication d'androidx.activity:activity:1.2.0-alpha03
et d'androidx.activity:activity-ktx:1.2.0-alpha03
. Liste des commits de la version 1.2.0-alpha03.
Nouvelles fonctionnalités
- Ajout des contrats
TakeVideo
,PickContact
,GetContent
,GetContents
,OpenDocument
,OpenDocuments
,OpenDocumentTree
etCreateDocument
à l'ensemble des contrats prédéfinis contrats fournis parActivityResultContracts
. (aosp/1262482, aosp/1266916, aosp/1268960) - Les API Activity Result permettent désormais de lancer une activité pour le résultat avec un
ActivityOptionsCompat
facultatif. (b/151860054)
Modifications apportées à l'API
- Le contrat
TakePicture
prend désormais en charge une entréeUri
pour l'emplacement de stockage de l'image. Le contrat précédent qui ne nécessite aucune entrée a été renomméTakePicturePreview
. (aosp/1262482) - La méthode
registerActivityResultCallback()
dansActivityResultRegistry
a été renomméeregister()
. (aosp/1267621) - La méthode
dispose()
dansActivityResultLauncher
a été renomméeunregister()
. LeunregisterResultCallback()
dansActivityResultRegistry
a été supprimé. (aosp/1267621) - La méthode
createIntent()
deActivityResultContact
prend désormais en charge unContext
en plus de l'entrée pour permettre la création d'intents explicites. (aosp/1238800) - Un
ActivityResultContract
peut désormais ignorergetSynchronousResult()
pour obtenir un résultat sans appeler destartActivityForResult
. Les contratsRequestPermission
etRequestPermissions
l'utilise pour transmettre correctement l'état "accordé" si les autorisations demandées sont déjà accordées. (b/151110799) - Le contrat
Dial
précédemment disponible a été supprimé, carIntent
n'est pas censé être utilisé avecstartActivityForResult()
. (aosp/1266916) - De nombreuses API Activity Result qui ne sont pas destinées à être étendues sont désormais
final
. Cela inclutgetActivityResultRegistry()
, les méthodesprepareCall()
, toutes les méthodes deActivityResultRegistry
à l'exception deinvoke()
et un certain nombre de contrats par défaut qui ne sont pas compatibles avec les éléments supplémentaires facultatifs. (b/152439361)
Correction de bugs
- Correction d'une
NullPointerException
dansActivityResultRegistry
lors de la tentative de transmission des résultats à un rappel qui n'a pas encore été enregistré à nouveau après une modification de configuration.ActivityResultRegistry
conserve désormais ces résultats en attente et les transmet lorsque le rappel est à nouveau enregistré. (b/152137004)
Version 1.2.0-alpha02
18 mars 2020
Publication d'androidx.activity:activity:1.2.0-alpha02
et d'androidx.activity:activity-ktx:1.2.0-alpha02
. Liste des commits de la version 1.2.0-alpha02.
Nouvelles fonctionnalités
- ActivityResultRegistry :
ComponentActivity
fournit désormais unActivityResultRegistry
qui vous permet de gérer les fluxstartActivityForResult()
+onActivityResult()
etrequestPermissions()
+onRequestPermissionsResult()
sans remplacer les méthodes de votre Activity ou Fragment. En outre, il fournit un type de sécurité renforcée viaActivityResultContract
et des hooks pour tester ces flux. Consultez la section Obtenir un résultat depuis Activity mise à jour. (b/125158199)
Version 1.2.0-alpha01
4 mars 2020
Publication d'androidx.activity:activity:1.2.0-alpha01
et d'androidx.activity:activity-ktx:1.2.0-alpha01
. Liste des commits de la version 1.2.0-alpha01
Nouvelles fonctionnalités
- Ajout de la prise en charge de l'API
ViewTreeLifecycleOwner.get(View)
ajoutée à Lifecycle2.3.0-alpha01
, qui permet de renvoyer Activity en tant queLifecycleOwner
pour chaque View directement ajoutée à Activity. (aosp/1182955)
Correction de bugs
- Correction d'une régression introduite dans Activity
1.1.0
lors de son exécution sur des versions précédentes de la plate-forme dans laquelleonBackPressed()
entraînait uneIllegalStateException
en raison d'un bug dansandroid.app.FragmentManager
. (b/146290338)
Version 1.1.0
Version 1.1.0
22 janvier 2020
Publication d'androidx.activity:activity:1.1.0
. Liste des commits de la version 1.1.0.
Changements importants depuis la version 1.0.0
- Intégration de Lifecycle ViewModel SavedState :
SavedStateViewModelFactory
est désormais la fabrique par défaut utilisée lorsque vous utilisezby viewModels()
, le constructeurViewModelProvider
ouViewModelProviders.of()
avec uneComponentActivity
ou ses sous-classes.
Version 1.1.0-rc03
4 décembre 2019
Publication d'androidx.activity:activity:1.1.0-rc03
et d'androidx.activity:activity-ktx:1.1.0-rc03
. Liste des commits de la version 1.1.0-rc03
Modifications de la dépendance
- Activity dépend désormais de Lifecycle
2.2.0-rc03
et de Lifecycle ViewModel SavedState1.0.0-rc03
.
Version 1.1.0-rc02
7 novembre 2019
Publication d'androidx.activity:activity:1.1.0-rc02
et d'androidx.activity:activity-ktx:1.1.0-rc02
. Liste des commits de la version 1.1.0-rc02
Modifications de la dépendance
- Activity dépend désormais de Lifecycle
2.2.0-rc02
.
Version 1.1.0-rc01
23 octobre 2019
Publication d'androidx.activity:activity:1.1.0-rc01
et d'androidx.activity:activity-ktx:1.1.0-rc01
sans aucune modification par rapport à la version 1.1.0-beta01
. Liste des commits de la version 1.1.0-rc01
Version 1.1.0-beta01
9 octobre 2019
Publication d'androidx.activity:activity:1.1.0-beta01
et d'androidx.activity:activity-ktx:1.1.0-beta01
. Liste des commits de la version 1.1.0-beta01.
Modifications de la dépendance
- Activity dépend désormais de la version SavedState 1.0.0 stable.
Version 1.1.0-alpha03
5 septembre 2019
Publication d'androidx.activity:activity:1.1.0-alpha03
et d'androidx.activity:activity-ktx:1.1.0-alpha03
. Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
- Activity dépend désormais de la version Core 1.1.0 stable.
Correction de bugs
- Activity dépend désormais de Lifecycle
2.2.0-alpha04
.
Version 1.1.0-alpha02
7 août 2019
Publication d'androidx.activity:activity:1.1.0-alpha02
et d'androidx.activity:activity-ktx:1.1.0-alpha02
. Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
SavedStateViewModelFactory
est désormais la fabrique par défaut utilisée lorsque vous utilisezby viewModels()
, le constructeurViewModelProvider
ouViewModelProviders.of()
avec uneComponentActivity
. (b/135716331)
Version 1.1.0-alpha01
2 juillet 2019
Publication d'androidx.activity:activity:1.1.0-alpha01
et d'androidx.activity:activity-ktx:1.1.0-alpha01
. Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
activity
dépend désormais de Lifecycle2.2.0-alpha02
. (aosp/1007817)activity-ktx
a ajouté une dépendance àlifecycle-runtime-ktx
. Vous n'avez plus besoin de l'ajouter explicitement à vos dépendances lorsque vous utilisezactivity-ktx
ou des bibliothèques qui dépendent deactivity-ktx
(commefragment-ktx
). (aosp/987162)
Version 1.0.0
Version 1.0.0
5 septembre 2019
Publication d'androidx.activity:activity:1.0.0
et d'androidx.activity:activity-ktx:1.0.0
. Les commits inclus dans cette version sont disponibles sur cette page.
Principales fonctionnalités de la version 1.0.0
- ComponentActivity :
ComponentActivity
sert de nouvelle classe de base pourFragmentActivity
dans Fragment1.1.0
et, par extension,AppCompatActivity
dans AppCompat1.1.0
. - activity-ktx : le module
activity-ktx
comprend une extension de propriété Kotlinby viewModels
permettant d'accéder à ViewModels. Ce module est automatiquement inclus lorsque vous incluezfragment-ktx
dans Fragment1.1.0
. - OnBackPressedDispatcher : comme alternative composable au remplacement de
onBackPressed()
, vous pouvez désormais enregistrer unOnBackPressedCallback
depuis n'importe quelLifecycleOwner
(un fragment, par exemple) pour intercepter les événements du bouton "Retour" du système. Un lambda ayant la version de récepteuraddCallback
a été ajouté àactivity-ktx
. Pour en savoir plus, consultez la documentation Fournir une navigation vers l'arrière personnalisée. - Abandon de onRetainCustomNonConfigurationInstance : les API
onRetainCustomNonConfigurationInstance()
etgetLastCustomNonConfigurationInstance()
associées ont été abandonnées. Il est vivement recommandé d'utiliser ViewModels pour stocker des états de non-configuration, car ils offrent une solution composable adaptée à toutViewModelStoreOwner
qui clarifie la propriété des objets conservés et fournit un rappelonCleared()
, afin de nettoyer les ressources lorsque l'activité est finalement détruite.
Version 1.0.0-rc01
2 juillet 2019
Publication d'androidx.activity:activity:1.0.0-rc01
et d'androidx.activity:activity-ktx:1.0.0-rc01
sans aucune modification par rapport à la version 1.0.0-beta01
. Les commits inclus dans cette version sont disponibles sur cette page.
Version 1.0.0-beta01
5 juin 2019
Publication d'androidx.activity::activity:1.0.0-beta01
et d'androidx.activity:activity-ktx:1.0.0-beta01
sans aucune modification par rapport à la version 1.0.0-alpha08
. Les commits inclus dans cette version sont disponibles sur cette page.
Version 1.0.0-alpha08
7 mai 2019
Publication d'androidx.activity:activity:1.0.0-alpha08
et d'androidx.activity:activity-ktx:1.0.0-alpha08
. Les commits inclus dans cette version sont disponibles sur cette page.
Modifications apportées à l'API
- Modification destructive : Les méthodes
addOnBackPressedCallback
etremoveOnBackPressedCallback
précédemment abandonnées dansComponentActivity
ont été supprimées. aosp/953857 - Les méthodes
setEnabled()
etisEnabled()
deOnBackPressedCallback
sont maintenant finales. b/131416833 - La méthode
remove()
deOnBackPressedCallback
est maintenant finale. aosp/952720 OnBackPressedDispatcher
dispose désormais de constructeurs publics, ce qui vous permet de créer vos propres instances pour les tests, etc. aosp/953431onBackPressed()
pourComponentActivity
est maintenant explicitement marqué comme@MainThread
. aosp/952721
Correction de bugs
- Correction d'une
ConcurrentModificationException
lors de l'appel deremove()
depuis la méthodehandleOnBackPressed()
d'unOnBackPressedCalback
ajouté avec unLifecycleOwner
. b/131765095
Version 1.0.0-alpha07
25 avril 2019
Publication d'androidx.activity:activity:1.0.0-alpha07
et d'androidx.activity:activity-ktx:1.0.0-alpha07
. Les commits inclus dans cette version sont disponibles sur cette page.
Modifications apportées à l'API
Cette version apporte des modifications importantes à la gestion de onBackPressed()
. Pour en savoir plus, consultez la documentation mise à jour sur les retours personnalisés.
- Les méthodes pour
OnBackPressedCallback
etOnBackPressedDispatcher
ont été marquées comme@MainThread
. (aosp/943813) - La méthode
handleOnBackPressed()
ne renvoie plus de valeurboolean
. En revanche,OnBackPressedCallback
est désormais une classe abstraite qui peut être activée ou désactivée, ce n'est que lorsque la nouvelle méthodeisEnabled()
renvoie la valeur "true" quehandleOnBackPressed()
sera appelé, où vous devrez gérer le bouton "Retour". (aosp/944518) - Les méthodes
addCallback
deOnBackPressedDispatcher
ne renvoient plus d'instanceCancellable
.OnBackPressedCallback
contient désormais une méthoderemove()
qui remplit cette fonctionnalité, ce qui vous permet d'appelerremove()
pendanthandleOnBackPressed()
. (aosp/944519) (aosp/946316) activity-ktx
contient désormais un rappel limité au récepteur pouraddCallback
qui accepte un lambda implémentanthandleOnBackPressed()
et ayant accès àisEnabled
etremove()
. (aosp/944520)
Version 1.0.0-alpha06
3 avril 2019
Publication d'androidx.activity:activity:1.0.0-alpha06
et d'androidx.activity:activity-ktx:1.0.0-alpha06
. Les commits inclus dans cette version sont disponibles sur cette page.
Modifications apportées à l'API
- "ComponentActivity" contient désormais un deuxième constructeur utilisant un
@LayoutRes int
, qui remplace le comportement précédent d'annotation de votre classe "AppCompatActivity" par@ContentView
. Cette approche fonctionne dans les modules d'application et de bibliothèque. (b/128352521) - Les API associées à
OnBackPressedCallback
dans "ComponentActivity" ont été remplacées par le nouveauOnBackPressedDispatcher
, que vous pouvez récupérer viagetOnBackPressedDispatcher()
. (aosp/922523) - Les méthodes permettant d'ajouter un nouveau
OnBackPressedCallback
auOnBackPressedDispatcher
renvoient désormais un objetCancellable
, ce qui permet de supprimer le rappel sans avoir besoin d'une référence explicite auOnBackPressedDispatcher
. (aosp/922523) - Désormais, l'ajout d'un
OnBackPressedCallback
associé à unLifecycleOwner
entraîne l'ajout et la suppression de ceOnBackPressedCallback
au moment du démarrage et de l'arrêt de Lifecycle, respectivement. (aosp/922523)
Version 1.0.0-alpha05
13 mars 2019
Publication d'androidx.activity:activity:1.0.0-alpha05
et d'androidx.activity:activity-ktx:1.0.0-alpha05
. La liste complète des commits inclus dans cette version est disponible sur cette page.
Nouvelles fonctionnalités
- Les recherches d'annotations de
@ContentView
sont désormais mises en cache. (b/123709449)
Version 1.0.0-alpha04
30 janvier 2019
Publication de androidx.activity:activity 1.0.0-alpha04
et androidx.activity:activity-ktx 1.0.0-alpha04
.
Nouvelles fonctionnalités
- Ajout de la prise en charge de l'annotation de classe
@ContentView
, qui vous permet d'indiquer le fichier XML de mise en page à augmenter à la place desetContentView()
. (aosp/837619)
Modifications apportées à l'API
- Ajout d'une remarque indiquant que
getViewModelStore()
ne doit pas être remplacé et sera final dans une prochaine version. Veuillez envoyer une demande de fonctionnalité si vous remplacez actuellement cette méthode. (aosp/837619)
Correction de bugs
- Le module
activity
dépend désormais de la version 2.1.0-alpha02 de ViewModel pour correspondre à la dépendance du moduleactivity-ktx
.
Version 1.0.0-alpha03
17 décembre 2018
Publication d'androidx.activity 1.0.0-alpha03
.
Nouvelles fonctionnalités
- "ComponentActivity" implémente désormais
BundleSavedStateRegistryOwner
et dépend de la nouvelle bibliothèque SavedState. [aosp/815133] - "ComponentActivity" contourne maintenant un bug du framework Android, qui entraînerait la fuite de la dernière vue sélectionnée par "InputMethodManager". [b/37122102]
Version 1.0.0-alpha02
3 décembre 2018
Modifications apportées à l'API
- Ajout d'une remarque indiquant que
getLifecycle()
ne doit pas être remplacé et serafinal
dans une prochaine version. Veuillez envoyer une demande de fonctionnalité si vous remplacez actuellement cette méthode. (aosp/815834)
Version 1.0.0-alpha01
5 novembre 2018
androidx.activity 1.0.0-alpha01
comprend ComponentActivity
, une nouvelle classe de base des FragmentActivity
et AppCompatActivity
existants.
Nouvelles fonctionnalités
- Vous pouvez maintenant enregistrer un
OnBackPressedCallback
viaaddOnBackPressedCallback
pour recevoir des rappelsonBackPressed()
sans avoir à remplacer la méthode dans votre activité. - Ajout d'un nouveau délégué de propriété Kotlin
by viewModels()
pour la récupération desViewModel
à partir d'unComponentActivity
. - Les événements d'entrée en attente (tels que les clics) sont maintenant annulés dans
onStop()
.
Modifications apportées à l'API
- L'implémentation de
LifecycleOwner
et deViewModelStoreOwner
a été déplacée deFragmentActivity
versComponentActivity
. onRetainCustomNonConfigurationInstance
est maintenant obsolète. Utilisez unViewModel
pour stocker les objets qui doivent survivre aux modifications de configuration.