Activité

Accédez à des API modulables basées sur Activity.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
11 décembre 2024 1.9.3 1.10.0-rc01 - -

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.9.2"

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

Kotlin

dependencies {
    val activity_version = "1.9.2"

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

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.10

Version 1.10.0-rc01

11 décembre 2024

Publication d'androidx.activity:activity:1.10.0-rc01, androidx.activity:activity-compose:1.10.0-rc01 et androidx.activity:activity-ktx:1.10.0-rc01. La version 1.10.0-rc01 contient ces commits.

Correction de bugs

  • Correction d'un problème qui entraînait un court-circuit immédiat du rappel lorsque l'état d'activation était modifié alors que PredictiveBackHandler était actuellement actif. Le rappel actuel sera désormais terminé, quel que soit l'état d'activation. (Ib8719)

Version 1.10.0-beta01

13 novembre 2024

Publication d'androidx.activity:activity:1.10.0-beta01, d'androidx.activity:activity-compose:1.10.0-beta01 et d'androidx.activity:activity-ktx:1.10.0-beta01 sans modification par rapport à la dernière version alpha. La version 1.10.0-beta01 contient ces commits.

Version 1.10.0-alpha03

30 octobre 2024

Publication d'androidx.activity:activity:1.10.0-alpha03, androidx.activity:activity-compose:1.10.0-alpha03 et androidx.activity:activity-ktx:1.10.0-alpha03. La version 1.10.0-alpha03 contient ces commits.

Modifications apportées à l'API

  • Ajout d'une composition locale LocalActivity qui fournit la Activity pour le champ d'application actuel, ce qui évite aux développeurs d'obtenir une Activity à partir de la LocalContext. Il est également accompagné d'une nouvelle règle lint qui vérifie si le LocalContext est mal converti en Activity. (I7746a, b/283009666)

Correction de bugs

  • À partir de Activity 1.9.3: PredictiveBackHandler ne déclenchera plus son rappel une fois le gestionnaire désactivé. Cela résout un problème qui entraînait l'affichage d'une IndexOutOfBoundsException par le NavHost de Navigation Compose. (I3f75e, b/365027664, b/340202286)

Mise à jour de la dépendance

  • Activity Compose dépend désormais de Compose Runtime 1.7.0 (I7746a, b/283009666)

Version 1.10.0-alpha02

4 septembre 2024

Publication d'androidx.activity:activity:1.10.0-alpha02, androidx.activity:activity-compose:1.10.0-alpha02 et androidx.activity:activity-ktx:1.10.0-alpha02. La version 1.10.0-alpha02 contient ces commits.

Nouveaux comportements

  • Les contrats Activity Result PickVisualMedia et PickMultipleVisualMedia qui déclenchent le sélecteur de photos ne délèguent plus directement aux services Google Play si le sélecteur de photos du système n'est pas disponible, mais utilisent l'action publique ACTION_SYSTEM_FALLBACK_PICK_IMAGES et les extras associés pour fournir une expérience de sélecteur de photos cohérente aux OEM et aux applications système en cas de substitution. Cela ne devrait avoir aucun impact sur l'expérience utilisateur des appareils équipés d'une version récente des services Google Play. (I3513d)

Correction de bugs

  • Suppression de la description manuelle de l'accès aux nouvelles API de la plate-forme, car cela se produit automatiquement via la modélisation d'API lorsque vous utilisez R8 avec AGP 7.3 ou version ultérieure (par exemple, R8 version 3.3) et pour tous les builds lorsque vous utilisez AGP 8.1 ou version ultérieure (par exemple, D8 version 8.1). Les clients qui n'utilisent pas AGP sont invités à passer à la version 8.1 de D8 ou ultérieure. Consultez cet article pour en savoir plus. (I9496c, b/345472586)
  • Dans Activity 1.9.2: correction d'un problème où l'API PredictiveBackHandler Activity Compose continuait de gérer le geste de retour du système sur le frame où elle était désactivée, ce qui pouvait entraîner la gestion du retour par des bibliothèques telles que Navigation Compose même avec une pile "Retour" vide, ce qui entraînait l'affichage d'une erreur IndexOutOfBoundsException. (Ie3301, b/340202286)
  • Depuis l'activité 1.9.1: correction d'un problème avec PredictiveBackHandler qui empêchait l'exécution de onBackPressed à partir de OnBackPressedDispatcher après un retour système. (I5f1f8)

Version 1.10.0-alpha01

26 juin 2024

Publication d'androidx.activity:activity:1.10.0-alpha01, androidx.activity:activity-compose:1.10.0-alpha01 et androidx.activity:activity-ktx:1.10.0-alpha01. Cette version est développée dans une branche interne.

Nouvelles fonctionnalités

  • Prise en charge des nouvelles fonctionnalités PhotoPicker introduites dans Android V, y compris la possibilité de sélectionner des images dans l'ordre et de choisir l'onglet (albums ou images) à afficher initialement.

Version 1.9

Version 1.9.3

16 octobre 2024

Publication d'androidx.activity:activity:1.9.3, androidx.activity:activity-compose:1.9.3 et androidx.activity:activity-ktx:1.9.3. La version 1.9.3 contient ces commits.

Correction de bugs

  • PredictiveBackHandler ne déclenchera plus son rappel une fois le gestionnaire désactivé. Cela résout un problème qui entraînait l'affichage d'une IndexOutOfBoundsException par le NavHost de Navigation Compose. (I3f75e, b/340202286)

Version 1.9.2

4 septembre 2024

Publication d'androidx.activity:activity:1.9.2, androidx.activity:activity-compose:1.9.2 et androidx.activity:activity-ktx:1.9.2. La version 1.9.2 contient ces commits lthco.

Correction de bugs

  • Correction d'un problème dans lequel l'API PredictiveBackHandler Activity Compose continuait de gérer le geste "Retour" du système sur le frame où elle était désactivée, ce qui pouvait entraîner la gestion du retour par des bibliothèques telles que Navigation Compose même avec une pile "Retour" vide, ce qui entraînait l'affichage d'une erreur IndexOutOfBoundsException. (Ie3301, b/340202286)

Version 1.9.1

24 juillet 2024

Publication d'androidx.activity:activity:1.9.1, androidx.activity:activity-compose:1.9.1 et androidx.activity:activity-ktx:1.9.1. La version 1.9.1 contient ces commits.

Correction de bugs

  • Correction d'un problème avec PredictiveBackHandler qui empêchait l'exécution de onBackPressed à partir de OnBackPressedDispatcher après un retour système. (I5f1f8)

Version 1.9.0

17 avril 2024

Publication d'androidx.activity:activity:1.9.0, androidx.activity:activity-compose:1.9.0 et androidx.activity:activity-ktx:1.9.0. La version 1.9.0 contient ces commits.

Changements importants depuis la version 1.8.0

  • ComponentActivity implémente désormais OnUserLeaveHintProvider pour permettre aux composants d'effectuer des rappels pour les événements onUserLeaveHint.
  • Les API OnBackPressedCallback, BackHandler et PredictiveBackHandler génèrent désormais un avertissement lors de l'appel de onBackPressedDispatcher.onBackPressed() lors de la gestion du Retour, car cela interrompt toujours l'animation de prévisualisation du Retour. Pour en savoir plus, consultez le guide des bonnes pratiques.
  • Le reste des API Activity a été réécrit en Kotlin, et toutes les extensions précédemment disponibles dans activity-ktx ont été déplacées vers activity. activity-ktx est maintenant complètement vide.
    • Lors de la conversion de ActivityResultLauncher en Kotlin, la méthode getContract est désormais une propriété Kotlin abstraite. Il s'agit d'une modification compatible avec le binaire, mais destructive pour la source si votre implémentation de ActivityResultLauncher est écrite en Kotlin.

Version 1.9.0-rc01

3 avril 2024

Publication d'androidx.activity:activity:1.9.0-rc01, androidx.activity:activity-compose:1.9.0-rc01 et androidx.activity:activity-ktx:1.9.0-rc01. La version 1.9.0-rc01 contient ces commits.

Mise à jour de la dépendance

Version 1.9.0-beta01

20 mars 2024

Publication d'androidx.activity:activity:1.9.0-beta01, androidx.activity:activity-compose:1.9.0-beta01 et androidx.activity:activity-ktx:1.9.0-beta01. La version 1.9.0-beta01 contient ces commits.

Correction de bugs

  • Correction d'une régression des performances de démarrage de l'activité introduite dans Activity 1.9.0-alpha02 en raison de l'appel de OnBackPressedDispatcher lors de la création de l'activité. (Ie75e3)

Version 1.9.0-alpha03

7 février 2024

Publication d'androidx.activity:activity:1.9.0-alpha03, androidx.activity:activity-compose:1.9.0-alpha03 et androidx.activity:activity-ktx:1.9.0-alpha03. Liste des commits de la version 1.9.0-alpha03

Avertissement lint

Correction de bugs

  • Si un événement "Retour" est envoyé à partir du système lancé pendant un geste de prévisualisation du Retour déjà en cours, le geste de prévisualisation du Retour en cours est annulé et le nouvel événement "Retour" prend le relais pour lancer un nouveau geste de prévisualisation du Retour. (I3482e)
  • Correction d'un plantage lors du premier accès au onBackPressedDispatcher à partir d'un ComponentActivity à partir d'un thread en arrière-plan. Vous pouvez désormais accéder à onBackPressedDispatcher sur n'importe quel thread sans risque. (I79955)

Version 1.9.0-alpha02

24 janvier 2024

Publication d'androidx.activity:activity:1.9.0-alpha02, androidx.activity:activity-compose:1.9.0-alpha02 et androidx.activity:activity-ktx:1.9.0-alpha02. Liste des commits de la version 1.9.0-alpha02

Conversions Kotlin

  • ActivityResultRegistry a été réécrit en Kotlin. Cela garantit que la possibilité de valeur nulle des génériques du contrat transmis à register sera correctement transmise à l'ActivityResultLauncher qui vous est renvoyée. (I121f0)
  • ActivityResult a été réécrit en Kotlin. Les extensions Kotlin ActivityResult compatibles avec la déstructuration dans les champs resultCode et data ont été déplacées de activity-ktx vers activity. (I0565a)
  • Les extensions Kotlin de by viewModels() pour ComponentActivity et trackPipAnimationHintView ont été déplacées de activity-ktx vers activity. L'artefact activity-ktx est désormais complètement vide. (I0a444)

Correction de bugs

  • L'API enableEdgeToEdge dessine désormais autour de toutes les encoches d'affichage. (a3644b, b/311173461)
  • Dans Activity 1.8.2: correction de l'élément supplémentaire transmis à ACTION_SYSTEM_FALLBACK_PICK_IMAGES du contrat d'activité du sélecteur de photos pour transmettre correctement la clé EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, au lieu d'utiliser l'élément supplémentaire avec la clé "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Si vous êtes un OEM qui implémente un sélecteur de photos de remplacement système, nous vous recommandons vivement de prendre en charge les deux extras afin de garantir la compatibilité la plus large possible. (I96a00)

Version 1.9.0-alpha01

29 novembre 2023

Publication d'androidx.activity:activity:1.9.0-alpha01, androidx.activity:activity-compose:1.9.0-alpha01 et androidx.activity:activity-ktx:1.9.0-alpha01. Liste des commits de la version 1.9.0-alpha01

Nouvelles fonctionnalités

  • ComponentActivity implémente désormais OnUserLeaveHintProvider pour permettre aux composants d'effectuer des rappels pour les événements onUserLeaveHint. (I54892)

Modifications apportées à l'API

  • ComponentActivity a été réécrit en Kotlin. (I14f31)
  • ActivityResultCaller a été réécrit en Kotlin. (Ib02e4)
  • ActivityResultLauncher a été réécrit en Kotlin. Dans le cadre de cette conversion, la méthode getContract est désormais une propriété Kotlin abstraite. Il s'agit d'une modification compatible avec le binaire, mais destructive pour la source si votre implémentation de ActivityResultLauncher est écrite en Kotlin. (Id4615)
  • PickVisualMediaRequest a désormais le même niveau d'API minimal (19) que le contrat Activity Result PickVisualMedia. (Id6e21)

Mise à jour de la dépendance

Version 1.8

Version 1.8.2

13 décembre 2023

Publication d'androidx.activity:activity:1.8.2, androidx.activity:activity-compose:1.8.2 et androidx.activity:activity-ktx:1.8.2. Liste des commits de la version 1.8.2

Correction de bugs

  • Correction de l'élément supplémentaire transmis à ACTION_SYSTEM_FALLBACK_PICK_IMAGES du contrat d'activité du sélecteur de photos pour transmettre correctement la clé EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, au lieu d'utiliser l'élément supplémentaire avec la clé "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Si vous êtes un OEM qui implémente un sélecteur de photos de remplacement système, nous vous recommandons vivement de prendre en charge les deux extras afin de garantir la compatibilité la plus large possible. (I96a00)

Version 1.8.1

15 novembre 2023

Publication d'androidx.activity:activity:1.8.1, androidx.activity:activity-compose:1.8.1 et androidx.activity:activity-ktx:1.8.1. Liste des commits de la version 1.8.1

Correction de bugs

  • OnBackPressedDispatcher continue désormais de distribuer vers le OnBackPressedCallback approprié même après l'ajout d'un nouveau OnBackPressedCallback pendant le traitement du geste Retour. (Id0ff6)

Version 1.8.0

4 octobre 2023

Publication d'androidx.activity:activity:1.8.0, androidx.activity:activity-compose:1.8.0 et androidx.activity:activity-ktx:1.8.0. Liste des commits de la version 1.8.0

Changements importants depuis la version 1.7.0

  • Prévisualisation du Retour : OnBackPressedCallback propose désormais de nouveaux rappels de 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 rappel handleOnBackPressed() précédent lorsque le geste de retour est validé. Le composable PredictiveBackHandler est également fourni pour gérer les événements de prévisualisation des gestes Retour dans Activity Compose. Il fournit un flux d'objets BackEventCompat qui doivent être collectés dans le lambda de suspension que vous fournissez:
  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() a été abandonné au profit des API de gestion du Retour. Les développeurs doivent désormais utiliser OnBackPressedDispatcher au lieu de remplacer cette méthode.

  • EdgeToEdge : ComponentActivity.enableEdgeToEdge() a été ajouté pour configurer facilement l'écran bord à bord de manière rétrocompatible.

Version 1.8.0-rc01

20 septembre 2023

Publication d'androidx.activity:activity:1.8.0-rc01, androidx.activity:activity-compose:1.8.0-rc01 et androidx.activity:activity-ktx:1.8.0-rc01. Liste des commits de la version 1.8.0-rc01

Version 1.8.0-beta01

6 septembre 2023

Publication d'androidx.activity:activity:1.8.0-beta01, androidx.activity:activity-compose:1.8.0-beta01 et androidx.activity:activity-ktx:1.8.0-beta01. Liste des commits de la version 1.8.0-beta01

Amélioration de la documentation

  • Amélioration de la documentation de BackEventCompat. (aosp/2722254)

Version 1.8.0-alpha07

23 août 2023

Publication d'androidx.activity:activity:1.8.0-alpha07, androidx.activity:activity-compose:1.8.0-alpha07 et androidx.activity:activity-ktx:1.8.0-alpha07. Liste des commits de la version 1.8.0-alpha07

Nouvelles fonctionnalités

  • Activity Compose a ajouté un nouveau composable PredictiveBackHandler pour gérer les événements de prévisualisation du geste Retour. Il fournit un Flow d'objets BackEventCompat qui doivent être collectés dans la fonction lambda de suspension que vous fournissez:

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

    Il est également accompagné d'un avertissement au moment de la compilation via une règle lint pour s'assurer que Flow appelle collect(). (Id2773, b/294884345)

  • onBackPressedDispatcher dans ComponentActivity est désormais initialisé de manière paresseuse afin qu'il ne soit créé que lorsque cela est nécessaire. (I0bf8e)

Correction de bugs

  • ComponentActivity n'affiche plus d'erreur NPE sur Android 13 lorsqu'il reçoit un rappel onBackPressed() et que l'activité a déjà été DESTROYED. (Idb055, b/291869278)
  • Suppression des utilisations de l'API expérimentale isAtLeastU(). (Ie9117, b/289269026)

Version 1.8.0-alpha06

21 juin 2023

Publication d'androidx.activity:activity:1.8.0-alpha06, androidx.activity:activity-compose:1.8.0-alpha06 et androidx.activity:activity-ktx:1.8.0-alpha06. Liste des commits de la version 1.8.0-alpha06

Nouvelles fonctionnalités

  • OnBackPressedDispatcher annule désormais correctement tous les rappels supprimés lors d'un geste de prévisualisation du Retour. (I3f90f)

Modifications apportées à l'API

  • Lorsque vous transmettez SystemBarStyle.auto à l'API enableEdgeToEdge, vous pouvez désormais remplacer le paramètre lambda detectDarkMode pour fournir une logique personnalisée permettant de détecter le mode nuit. (aosp/2546393, b/278263793)

Version 1.8.0-alpha05

7 juin 2023

Publication d'androidx.activity:activity:1.8.0-alpha05, androidx.activity:activity-compose:1.8.0-alpha05 et androidx.activity:activity-ktx:1.8.0-alpha05. Cette version est développée dans une branche interne.

Modifications apportées à l'API

  • Activity fournit désormais une classe BackEventCompat qui sert de version rétrocompatible de BackEvent, qui est dissociée de la classe BackEvent du framework.
  • Modification destructive:les méthodes handleOnBackStarted et handleOnBackProgressed de OnBackPressedCallback reçoivent désormais une instance androidx.activity.BackEventCompat au lieu d'une classe android.window.BackEvent de framework. Les API @VisibleForTesting équivalentes sur OnBackPressedDispatcher ont également été mises à jour.
  • Le constructeur de OnBackPressedDispatcher accepte désormais une instance Consumer<Boolean> facultative qui permet aux propriétaires du répartiteur de recevoir un rappel chaque fois que le nombre de rappels activés passe de zéro à une valeur non nulle ou inversement.

Correction de bugs

Version 1.8.0-alpha04

10 mai 2023

Publication d'androidx.activity:activity:1.8.0-alpha04, androidx.activity:activity-compose:1.8.0-alpha04 et androidx.activity:activity-ktx:1.8.0-alpha04. Publication à partir d'une branche interne.

Correction de bugs

Version 1.8.0-alpha03

12 avril 2023

Publication d'androidx.activity:activity:1.8.0-alpha03, androidx.activity:activity-compose:1.8.0-alpha03 et androidx.activity:activity-ktx:1.8.0-alpha03. Publication à partir d'une branche interne.

Nouvelles fonctionnalités

  • Ajout de ComponentActivity.setUpEdgeToEdge() pour configurer facilement l'écran bord à bord de manière rétrocompatible.

Modifications apportées à l'API

  • ComponentActivity.onBackPressed() a été abandonné au profit des API de gestion du Retour. Les développeurs doivent désormais utiliser OnBackPressedDispatcher au lieu de remplacer cette méthode. (Ibce2f, b/271596918)
  • ComponentDialog et ComponentActivity contiennent désormais l'API publique initViewTreeOwners() à utiliser pour initialiser tous les propriétaires d'arborescences de vues avant de définir la vue de contenu. (Ibdce0, b/261314581)

Correction de bugs

  • Correction d'un problème qui entraînait l'invalidation incorrecte des MenuHosts par les fragments, ce qui provoquait un comportement inattendu dans les autres menus de l'activité. (I9404e, b/244336571)

Autres changements

  • ActivityResultRegister utilise désormais Random Kotlin au lieu de Java. (I4d98f, b/272096025)

Version 1.8.0-alpha02

8 mars 2023

Publication d'androidx.activity:activity:1.8.0-alpha02, androidx.activity:activity-compose:1.8.0-alpha02 et androidx.activity:activity-ktx:1.8.0-alpha02. Développé à partir d'une branche interne.

Mise à jour de la dépendance

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 rappel handleOnBackPressed() précédent lorsque le geste de retour est validé.

Version 1.7

Version 1.7.2

24 mai 2023

Publication d'androidx.activity:activity:1.7.2, androidx.activity:activity-compose:1.7.2 et androidx.activity:activity-ktx:1.7.2. Liste des commits de la version 1.7.2

Correction de bugs

  • Correction du plantage de ReportDrawn lorsque vous quittez un écran avant l'appel de report. (Ic46f1, b/260506820)

Version 1.7.1

19 avril 2023

Publication d'androidx.activity:activity:1.7.1, androidx.activity:activity-compose:1.7.1 et androidx.activity:activity-ktx:1.7.1. Liste des commits de la version 1.7.1

Correction de bugs

  • La fuite de ReportFullyDrawExecuter n'est plus présente lorsque vous utilisez ComponentActivity avec ActivityScenario. (Id2ff2, b/277434271)

Version 1.7.0

22 mars 2023

Publication d'androidx.activity:activity:1.7.0, androidx.activity:activity-compose:1.7.0 et androidx.activity:activity-ktx:1.7.0. Liste des commits de la version 1.7.0

Changements importants depuis la version 1.6.0

  • Les contrats d'activité du sélecteur de photos dans PickVisualMedia et PickMultipleVisualMedia ont été mis à jour pour inclure une solution de remplacement supplémentaire lorsque MediaStore.ACTION_PICK_IMAGES n'est pas disponible. Cela permet aux OEM et aux applications système, tels que les services Google Play, de fournir une expérience de sélecteur de photos cohérente sur une plus grande variété d'appareils Android et de niveaux d'API en implémentant l'action de remplacement. Le sélecteur de photos utilisera cette solution de remplacement s'il est disponible avant de passer à Intent.ACTION_OPEN_DOCUMENT, qui reste compatible avec tous les appareils équipés de l'API 19 ou version ultérieure.
  • ComponentDialog implémente maintenant SavedStateRegistryOwner, a accès à son propre SavedStateRegistry et définit SavedStateRegistryOwner pour son ViewTree. Vous pouvez désormais utiliser Jetpack Compose dans ComponentDialog, car il répond aux exigences LifecycleOwner et SavedStateRegistryOwner associées à la fenêtre via les exigences des API ViewTree.
  • IntentSenderRequest.Builder.setFlags() vous permet désormais de définir plusieurs indicateurs à partir d'Intent au lieu d'un seul.

Conversion Kotlin

Un certain nombre de classes Activity ont été converties en Kotlin. Toutes les classes converties conservent leur compatibilité binaire avec les versions précédentes. Les classes suivantes comportent des modifications incompatibles avec la source pour les classes écrites en Kotlin: ActivityResultRegistryOwner, OnBackPressedDispatcherOwner.

Le tableau ci-dessous indique les conversions sources pour la nouvelle version d'Activity:

Activité 1.5 Activité 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val onBackPressedDispatcher = onBackPressedDispatcher

Ces classes ont également été converties en Kotlin, mais restent compatibles avec la source: ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest et OnBackPressedDispatcher.

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

Trois API Activity Compose ont été ajoutées pour faciliter l'utilisation de FullyDrawnReporter à partir de composables individuels:

  • ReportDrawn indique que votre composable est immédiatement prêt à interagir.
  • 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.

Mises à jour des dépendances

Version 1.7.0-rc01

8 mars 2023

Publication d'androidx.activity:activity:1.7.0-rc01, androidx.activity:activity-compose:1.7.0-rc01 et androidx.activity:activity-ktx:1.7.0-rc01. Liste des commits de la version 1.7.0-rc01

Mise à jour de la dépendance

Version 1.7.0-beta02

22 février 2023

Publication d'androidx.activity:activity:1.7.0-beta02, androidx.activity:activity-compose:1.7.0-beta02 et androidx.activity:activity-ktx:1.7.0-beta02. Liste des commits de la version 1.7.0-beta02.

Modifications apportées à l'API

  • L'action et l'extra utilisés par les contrats PickVisualMedia et PickMultipleVisualMedia comme solution de remplacement lorsque MediaStore.ACTION_PICK_IMAGES n'est pas disponible sont désormais des constantes publiques qui offrent une stabilité de l'API aux OEM et aux applications système qui souhaitent offrir une expérience de sélecteur de photos cohérente. L'implémentation de ce remplacement est toujours limitée aux applications système. (Icd320)

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 fonction getActivityResultRegistry() 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 fonction getOnBackPressedDispatcher précédente. (Ia277d)
  • ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest et OnBackPressedDispatcher 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 et PickMultipleVisualMedia 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'API isPhotoPickerAvailable() 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 API isPhotoPickerAvailable(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 maintenant SavedStateRegistryOwner, a accès à son propre SavedStateRegistry et définit SavedStateRegistryOwner pour son ViewTree. Vous pouvez désormais utiliser Jetpack Compose dans ComponentDialog, car il répond aux exigences LifecycleOwner et SavedStateRegistryOwner 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 à appeler reportFullyDrawn. (Ic5b14, b/259687964)

Conversions Kotlin

  • Les classes ActvitiyResultCallback et OnBackPressedCallback 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 de maxItems é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 de maxItems é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 utilisant MediaStore.ACTION_PICK_IMAGES lorsque le sélecteur de photos est disponible et Intent.ACTION_OPEN_DOCUMENT lorsqu'il n'est pas disponible.
  • Intégration d'OnBackInvokedCallback dans Android 13 dans les OnBackPressedDispatchers fournis par ComponentActivity et ComponentDialog. Cela garantit que toutes les API basées sur OnBackPressedDispatcher 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ésormais OnBackInvokedCallback avec la PRIORITY_DEFAULT au lieu de PRIORITY_OVERLAY. (I3901f)
  • Les deux rappels de onMultiWindowModeChanged() seront désormais toujours envoyés aux classes qui étendent ComponentActivity. (Ic4d85)
  • ActivityResultRegistry ne renvoie plus de résultat au ActivityResultCallback lorsque l'appel de launch génère une Exception et que le rappel a été enregistré sans LifecycleOwner. (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

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 de ClassVerificationError 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() de ComponentActivity. (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 et startIntentSenderForResult obsolètes sur ComponentActivity avec @NonNull, car la transmission de null a toujours entraîné un plantage. (Id2a25, b/231476082)

Correction de bugs

  • À partir de Activity 1.5.1 : le ActivityResultRegistry ne renvoie plus de résultat au ActivityResultCallback lorsque l'appel de launch génère une Exception et que le rappel a été enregistré sans LifecycleOwner. (Ia7ff7, b/238350794)
  • À partir de Activity 1.5.1 : ComponentActivity enverra maintenant correctement les appels du menu vers les remplacements de onPrepareOptionMenu(), onCreateOptionsMenu() et onOptionsItemSelected(), sans avoir à appeler la fonction Super. (Ie33c5, b/238057118)

Mise à jour de la dépendance

  • À partir de Activity 1.5.1 : la bibliothèque Activity dépend désormais de la version 2.5.1 de Lifecycle. (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 avec ACTION_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 le OnBackPressedDispatcher fourni par ComponentDialog. Cela garantit que toutes les API basées sur OnBackPressedDispatcher 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 utilisant MediaStore.ACTION_PICK_IMAGES lorsque le sélecteur de photos est disponible et Intent.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 par ComponentActivity. Cela garantit que toutes les API basées sur OnBackPressedDispatcher 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, androidx.activity:activity-compose:1.5.1 et 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 au ActivityResultCallback lorsque l'appel de launch() génère une Exception et que le rappel a été enregistré sans LifecycleOwner. (Ia7ff7, b/238350794)

  • ComponentActivity enverra maintenant correctement les appels du menu vers les remplacements de onPrepareOptionMenu(), onCreateOptionsMenu() et onOptionsItemSelected(), sans avoir à appeler la fonction Super. (Ie33c5, b/238057118)

Mise à jour de la dépendance

Version 1.5.0

Version 1.5.0

29 juin 2022

Publication d'androidx.activity:activity:1.5.0, androidx.activity:activity-compose:1.5.0 et 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 de Dialog comprenant un OnBackPressedDispatcher 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 le ViewTreeOnBackPressedDispatcherOwner, ce qui permet aux vues d'utiliser un moyen générique pour récupérer le bon coordinateur, qu'il se trouve dans une ComponentActivity ou une ComponentDialog.
  • Interfaces de rappel : ComponentActivity implémente désormais un ensemble d'interfaces de rappel modulaires pouvant être utilisées à la place des rappels de Activity. Parmi ces interfaces figurent les suivantes : OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider et OnMultiWindowModeChangedProvider.
  • Intégration de CreationExtras : ComponentActivity peut désormais fournir un ViewModelProvider.Factory sans état via les CreationExtras de Lifecycle 2.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 par Intent.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, androidx.activity:activity-compose:1.5.0-beta01 et androidx.activity:activity-ktx:1.5.0-beta01. Liste des commits de la version 1.5.0-beta01

Mises à jour des dépendances

Version 1.5.0-alpha05

6 avril 2022

Publication d'androidx.activity:activity:1.5.0-alpha05, androidx.activity:activity-compose:1.5.0-alpha05 et androidx.activity:activity-ktx:1.5.0-alpha05. Liste des commits de la version 1.5.0-alpha05.

Correction de bugs

  • onPanelClosed() de ComponentActivity appelle désormais également la fonction Super onPanelClosed(), ce qui résout le problème où la méthode onContextMenuClosed n'était pas appelée. (Ib6f77)

Version 1.5.0-alpha04

23 mars 2022

Publication d'androidx.activity:activity:1.5.0-alpha04, androidx.activity:activity-compose:1.5.0-alpha04 et 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 avec CreationExtras, même lorsqu'ils ont été initialisés avec un SavedStateRegistryOwner. 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, androidx.activity:activity-compose:1.5.0-alpha03 et 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 fonction by 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, androidx.activity:activity-compose:1.5.0-alpha02 et 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'interface OnPictureInPictureModeChangedProvider 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'interface OnMultiWindowModeChangedProvider 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, androidx.activity:activity-compose:1.5.0-alpha01 et 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 Lifecycle 2.5.0-alpha01. (Ie7e00, b/207012584)
  • Ajout de ComponentDialog, une sous-classe de Dialog qui comprend un OnBackPressedDispatcher 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 le ViewTreeOnBackPressedDispatcherOwner, ce qui permet aux vues d'utiliser un moyen générique pour récupérer le bon coordinateur, qu'il se trouve dans une ComponentActivity ou une ComponentDialog. (I8a1bc)
  • ComponentActivity implémente désormais la nouvelle interface OnNewIntentProvider pour permettre à n'importe quel composant de recevoir ces événements. (If1f8b)
  • ComponentActivity implémente désormais la nouvelle interface OnConfigurationChangedProvider pour permettre à n'importe quel composant de recevoir ces événements. (If623b)
  • ComponentActivity implémente désormais la nouvelle interface OnTrimMemoryProvider 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 par Intent.ACTION_CREATE_DOCUMENT. (I2bec6)
  • Le OnBackPressedDispatcherOwner associé à View peut désormais être récupéré via ViewTreeOnBackPressedDispatcherOwner, au lieu de compter sur la diffusion du Context. (I74685)

Correction de bugs

  • Correction d'un plantage survenant lors du premier accès au ViewModel à partir d'un rappel de registerForActivityResult() ou de rappels d'un LifecycleObserver ajoutés dans init d'une ComponentActivity. (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'interface MenuHost. Tous les composants peuvent ainsi ajouter des éléments de menu à la ActionBar en ajoutant une instance MenuProvider à l'activité. Chaque MenuProvider peut éventuellement être ajouté avec un Lifecycle qui contrôlera automatiquement la visibilité de ces éléments de menu en fonction de l'état Lifecycle et gérera la suppression du MenuProvider lorsque le Lifecycle 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 au ActivityResultCallback lorsque l'appel de launch génère une Exception. (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 et ActivityResultContracts.GetMultipleContents entraînant l'utilisation du type de sortie de List<? extends Uri> lors de l'utilisation du code du langage de programmation Java. (If71de)
  • Les constantes publiques des classes ActivityResultContracts.StartActivityForResult, ActivityResultContracts.StartIntentSenderForResult et ActivityResultContracts.RequestMultiplePermissions sont désormais accessibles lorsque vous utilisez Kotlin via leurs objets Companion 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 et onRequestPermissionsResult, 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 lint LaunchDuringComposition qui vous empêche d'appeler la méthode launch de ActivityResultLauncher 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'interface MenuHost. Tous les composants peuvent ainsi ajouter des éléments de menu à la ActionBar en ajoutant une instance MenuProvider à l'activité. Chaque MenuProvider peut éventuellement être ajouté avec un Lifecycle qui contrôlera automatiquement la visibilité de ces éléments de menu en fonction de l'état Lifecycle et gérera la suppression du MenuProvider lorsque le Lifecycle 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 une IllegalStateException lors d'une tentative d'appel de launch() sur un ActivityResultLauncher 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'extension setContent pour héberger votre UI Jetpack Compose dans une activité, ainsi que des wrappers spécifiques à Compose pour interagir avec les API ComponentActivity 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 contrat TakeVideo, 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'extension trackPipAnimationHintView sur Activity pour recréer automatiquement les PictureInPictureParams 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 utiliser rememberLauncherForActivityResult(). (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 de CaptureVideo renvoie une valeur booléenne à votre ActivityResultCallback pour indiquer si votre vidéo a bien été enregistrée dans l'URI donné. Cela remplace le contrat TakeVideo, 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 fonction unregister(). L'enregistrement et l'annulation de l'enregistrement du lanceur d'applications sont automatiquement gérés par rememberLauncherForActivityResult. (I2443e)

Compatibilité avec Compose

  • androidx.activity:activity-compose:1.3.0-alpha08 n'est compatible qu'avec les versions 1.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 instance ActivityResultLauncher, 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 version 1.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() par rememberLauncherForActivityResult() afin de mieux indiquer que le ActivityResultLauncher renvoyé est un objet géré qui est mémorisé en votre nom. Si vous tentez d'appeler unregister, le ActivityResultLauncher renvoyé génère une erreur. (I2bb6d)
  • LocalOnBackPressedDispatcherOwner.current et LocalActivityResultRegistryOwner.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 que BackHandler et rememberLauncherForActivityResult(), génèrent désormais une erreur plus descriptive si le propriétaire associé est introuvable. Le NavHost fonctionne désormais même si l'OnBackPressedDispatcherOwner est introuvable, par exemple, lors de la prévisualisation du NavHost. (I7d8b4)

Correction de bugs

  • Désormais, le BackHandler intercepte correctement les appuis sur le bouton "Retour" si Activity est STOPPED, puis à nouveau STARTED. 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 un ActivityResultContract personnalisé ayant une entrée Unit n'entraînera plus de NullPointerException. (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 une ClassNotFoundException lors du lancement d'une Intent à partir d'un ActivityResultContract précédemment considéré comme un élément supplémentaire dans une autre Intent. (Ieff05, b/182906230)

Mises à jour des dépendances

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 demandes launch() en cours renvoient leurs résultats même si vous exécutez une action unregister(), puis une action register() à 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 lambda onBack 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 fonction provides pouvant être utilisée avec CompositionLocalProvider, en remplacement de l'API asProvidableCompositionLocal(). (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 exception NoSuchMethodError: No static method setContent lors de l'utilisation de Compose 1.0.0-alpha12. Tous les utilisateurs de Compose doivent dépendre de la version 1.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 API androidx.activity spécifiques.
    • ComponentActivity.setContent a été déplacé de androidx.compose.ui.platform.setContent vers androidx.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 que androidx.compose.ui:ui-test-junit4:1.0.0-alpha12, entraînera une exception NoSuchMethodError: 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 un ActivityResultContract personnalisé ayant une entrée Unit n'entraînera plus de NullPointerException. (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 une ClassNotFoundException lors du lancement d'une Intent à partir d'un ActivityResultContract précédemment considéré comme un élément supplémentaire dans une autre Intent. (Ieff05, b/182906230)

Mises à jour des dépendances

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 demandes launch() en cours renvoient leurs résultats même si vous unregister(), puis register() à 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 un ActivityResultRegistry qui vous permet de gérer les flux startActivityForResult()+onActivityResult() et requestPermissions()+onRequestPermissionsResult() sans remplacer les méthodes de votre Activity ou Fragment. En outre, il fournit un type de sécurité renforcée via ActivityResultContract et des hooks pour tester ces flux. Consultez la section Obtenir un résultat depuis Activity mise à jour.
  • ContextAware : ComponentActivity implémente désormais ContextAware, ce qui vous permet d'ajouter une ou plusieurs instances de OnContextAvailableListener qui recevront un rappel avant la base Activity.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 de FragmentManager. Tous les écouteurs ajoutés aux sous-classes de FragmentActivity 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 de AppCompatActivity s'exécutent après cet écouteur.
  • Compatibilité de ViewTree : ComponentActivity est désormais compatible avec les API ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) et ViewTreeSavedStateRegistryOwner ajoutées à Lifecycle 2.3.0 et SavedState 1.1.0 de sorte qu'il renvoie Activity en tant que LifecycleOwner, ViewModelStoreOwner et SavedStateRegistryOwner pour chaque View directement ajoutée à ComponentActivity.

  • reportFullyDrawn() backport : la méthode Activity de reportFullyDrawn() a été rétroportée dans ComponentActivity 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ésormais reportFullyDrawn(), 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 un Lifecycle. (I109ea)

Contribution externe

  • Mise à jour de la documentation sur launch() pour indiquer explicitement qu'elle peut générer une ActivityNotFoundException. 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 de unregister() sur un ActivityResultLauncher. (b/165608393)

Nouveaux comportements

  • Le ActivityResultRegistry génère maintenant une IllegalStateException lors d'une tentative d'appel de register() avec un LifecycleOwner dont le Lifecycle a déjà atteint STARTED. (b/165435866)

Documentation mise à jour

  • La documentation de ContextAware contient un lien vers LifecycleOwner pour mettre en évidence que les rappels de Lifecycle 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 maintenant ContextAware, ce qui vous permet d'ajouter une ou plusieurs instances de OnContextAvailableListener qui recevront un rappel avant la base Activity.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 de FragmentManager. Tous les écouteurs ajoutés aux sous-classes de FragmentActivity 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 de AppCompatActivity s'exécutent après cet écouteur. (I513da)

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 Fragment 1.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 de RequestPermission. (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 et intent. (b/157212935)
  • ActivityResultLauncher vous permet maintenant d'obtenir le ActivityResultContract 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() par onLaunch() dans ActivityResultRegistry. (b/157496491)
  • Le contrat OpenMultipleDocuments renvoie désormais une liste vide au lieu de null 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

Modifications apportées à l'API

  • Le contrat TakePicture renvoie désormais une boolean indiquant la réussite de l'opération plutôt qu'un Bitmap miniature, car cela n'était que très rarement compatible avec les applications d'appareil photo lors de l'écriture de l'image dans le Uri fourni. (b/154302879)
  • Suppression des extensions invoke() dans ActivityResultLauncher. Elles ont été explicitement remplacées par l'utilisation de launch() pour mieux indiquer qu'il s'agit d'opérations asynchrones. Les extensions de Kotlin pour launch ont été ajoutées au package androidx.activity.result pour ActivityResultLauncher<Void> et ActivityResultLauncher<Unit>, éliminant ainsi la nécessité de transmettre respectivement null ou Unit, ce qui reproduit le comportement des extensions invoke() précédentes. (aosp/1304674, aosp/1304675)
  • Les méthodes IntentSenderRequest.Builder pour setFlagsMask() et setFlagsValues() ont été combinées en une seule méthode setFlags(). (aosp/1302111)

Correction de bugs

  • Correction d'un problème, lors de l'enregistrement d'un ActivityResultCallback avec un LifecycleOwner, qui entraînait le déclenchement du rappel avant que l'état n'atteigne STARTED. (aosp/1309744)

Nouveaux comportements

  • Le ActivityResultRegistry génère désormais des codes de requête commençant par 0xFFFF et non plus par 0, ce qui évite les chevauchements lorsque vous utilisez startActivityForResult() ou requestPermissions() 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ée registerForActivityResult(), à la fois dans ComponentActivity et dans Fragment 1.3.0-alpha04. (aosp/1278717)
  • Les contrats GetContents, OpenDocuments et RequestPermissions ont été renommés GetMultipleContents, OpenMultipleDocuments et RequestMultiplePermissions, respectivement. (aosp/1280161)
  • ComponentActivity implémente maintenant l'interface ActivityResultRegisteryOwner. (aosp/1290888)
  • Abandon des API startActivityForResult()/onActivityResult() et onRequestPermissionsResult() dans ComponentActivity. Veuillez utiliser les API Activity Result. (b/154751887)

Correction de bugs

  • Lorsque vous utilisez les contrats GetMultipleContents et OpenMultipleDocuments 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 et CreateDocument à l'ensemble des contrats prédéfinis contrats fournis par ActivityResultContracts. (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ée Uri 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() dans ActivityResultRegistry a été renommée register(). (aosp/1267621)
  • La méthode dispose() dans ActivityResultLauncher a été renommée unregister(). Le unregisterResultCallback() dans ActivityResultRegistry a été supprimé. (aosp/1267621)
  • La méthode createIntent() de ActivityResultContact prend désormais en charge un Context en plus de l'entrée pour permettre la création d'intents explicites. (aosp/1238800)
  • Un ActivityResultContract peut désormais ignorer getSynchronousResult() pour obtenir un résultat sans appeler de startActivityForResult. Les contrats RequestPermission et RequestPermissions 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é, car Intent n'est pas censé être utilisé avec startActivityForResult(). (aosp/1266916)
  • De nombreuses API Activity Result qui ne sont pas destinées à être étendues sont désormais final. Cela inclut getActivityResultRegistry(), les méthodes prepareCall(), toutes les méthodes de ActivityResultRegistry à l'exception de invoke() 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 dans ActivityResultRegistry 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 un ActivityResultRegistry qui vous permet de gérer les flux startActivityForResult()+onActivityResult() et requestPermissions()+onRequestPermissionsResult() sans remplacer les méthodes de votre Activity ou Fragment. En outre, il fournit un type de sécurité renforcée via ActivityResultContract 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 à Lifecycle 2.3.0-alpha01, qui permet de renvoyer Activity en tant que LifecycleOwner 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 laquelle onBackPressed() entraînait une IllegalStateException en raison d'un bug dans android.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 utilisez by viewModels(), le constructeur ViewModelProvider ou ViewModelProviders.of() avec une ComponentActivity 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 SavedState 1.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

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 utilisez by viewModels(), le constructeur ViewModelProvider ou ViewModelProviders.of() avec une ComponentActivity. (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 Lifecycle 2.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 utilisez activity-ktx ou des bibliothèques qui dépendent de activity-ktx (comme fragment-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 pour FragmentActivity dans Fragment 1.1.0 et, par extension, AppCompatActivity dans AppCompat 1.1.0.
  • activity-ktx : le module activity-ktx comprend une extension de propriété Kotlin by viewModels permettant d'accéder à ViewModels. Ce module est automatiquement inclus lorsque vous incluez fragment-ktx dans Fragment 1.1.0.
  • OnBackPressedDispatcher : comme alternative composable au remplacement de onBackPressed(), vous pouvez désormais enregistrer un OnBackPressedCallback depuis n'importe quel LifecycleOwner (un fragment, par exemple) pour intercepter les événements du bouton "Retour" du système. Un lambda ayant la version de récepteur addCallback 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() et getLastCustomNonConfigurationInstance() 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 à tout ViewModelStoreOwner qui clarifie la propriété des objets conservés et fournit un rappel onCleared(), 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 et removeOnBackPressedCallback précédemment abandonnées dans ComponentActivity ont été supprimées. aosp/953857
  • Les méthodes setEnabled() et isEnabled() de OnBackPressedCallback sont maintenant finales. b/131416833
  • La méthode remove() de OnBackPressedCallback 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/953431
  • onBackPressed() pour ComponentActivity est maintenant explicitement marqué comme @MainThread. aosp/952721

Correction de bugs

  • Correction d'une ConcurrentModificationException lors de l'appel de remove() depuis la méthode handleOnBackPressed() d'un OnBackPressedCalback ajouté avec un LifecycleOwner. 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 et OnBackPressedDispatcher ont été marquées comme @MainThread. (aosp/943813)
  • La méthode handleOnBackPressed() ne renvoie plus de valeur boolean. 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éthode isEnabled() renvoie la valeur "true" que handleOnBackPressed() sera appelé, où vous devrez gérer le bouton "Retour". (aosp/944518)
  • Les méthodes addCallback de OnBackPressedDispatcher ne renvoient plus d'instance Cancellable. OnBackPressedCallback contient désormais une méthode remove() qui remplit cette fonctionnalité, ce qui vous permet d'appeler remove() pendant handleOnBackPressed(). (aosp/944519) (aosp/946316)
  • activity-ktx contient désormais un rappel limité au récepteur pour addCallback qui accepte un lambda implémentant handleOnBackPressed() et ayant accès à isEnabled et remove(). (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 nouveau OnBackPressedDispatcher, que vous pouvez récupérer via getOnBackPressedDispatcher(). (aosp/922523)
  • Les méthodes permettant d'ajouter un nouveau OnBackPressedCallback au OnBackPressedDispatcher renvoient désormais un objet Cancellable, ce qui permet de supprimer le rappel sans avoir besoin d'une référence explicite au OnBackPressedDispatcher. (aosp/922523)
  • Désormais, l'ajout d'un OnBackPressedCallback associé à un LifecycleOwner entraîne l'ajout et la suppression de ce OnBackPressedCallback 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 de setContentView(). (aosp/837619)

Modifications apportées à l'API

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 module activity-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

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 via addOnBackPressedCallback pour recevoir des rappels onBackPressed() 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 des ViewModel à partir d'un ComponentActivity.
  • 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 de ViewModelStoreOwner a été déplacée de FragmentActivity vers ComponentActivity.
  • onRetainCustomNonConfigurationInstance est maintenant obsolète. Utilisez un ViewModel pour stocker les objets qui doivent survivre aux modifications de configuration.