Savedstate

Écrivez des composants enfichables qui enregistrent l'état de l'interface utilisateur à la fin d'un processus, puis restaurez-les au redémarrage du processus.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
22 mars 2023 1.2.1 - - -

Déclarer des dépendances

Pour ajouter une dépendance sur SavedState, 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 {
    // Java language implementation
    implementation "androidx.savedstate:savedstate:1.2.1"

    // Kotlin
    implementation "androidx.savedstate:savedstate-ktx:1.2.1"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.savedstate:savedstate:1.2.1")

    // Kotlin
    implementation("androidx.savedstate:savedstate-ktx:1.2.1")
}

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

Version 1.2.1

22 mars 2023

Publication d'androidx.savedstate:savedstate:1.2.1 et d'androidx.savedstate:savedstate-ktx:1.2.1. Liste des commits de la version 1.2.1

Mises à jour des dépendances

Version 1.2.0

Version 1.2.0

29 juin 2022

Publication d'androidx.savedstate:savedstate:1.2.0 et androidx.savedstate:savedstate-ktx:1.2.0. Liste des commits de la version 1.2.0

Changements importants depuis la version 1.1.0

  • SavedStateRegistryController autorise désormais l'association anticipée de SavedStateRegistry via performAttach().
  • Vous pouvez maintenant récupérer un SavedStateProvider enregistré précédemment à partir d'un SavedStateRegistry via getSavedStateProvider().
  • La bibliothèque SavedState a été réécrite en Kotlin.
    • Pour SavedStateRegistryOwner, il s'agit d'une modification incompatible avec la source pour les classes écrites en Kotlin. Vous devez maintenant remplacer la propriété savedStateRegistry au lieu d'implémenter la fonction getSavedStateRegistry() précédente.
    • Pour ViewTreeSavedStateRegistryOwner, il s'agit d'une modification incompatible avec la source pour les classes écrites en Kotlin. Vous devez désormais importer et utiliser directement les méthodes d'extension Kotlin sur View de androidx.savedstate.setViewTreeSavedStateRegistryOwner et androidx.savedstate.findViewTreeSavedStateRegistryOwner pour définir et rechercher un propriétaire défini précédemment. Cette action remplace l'API savedstate-ktx de findViewTreeSavedStateRegistryOwner.

Nouveaux comportements

  • SavedStateRegistry n'enregistre plus un groupe vide s'il n'y a pas d'état à enregistrer.

Version 1.2.0-rc01

11 mai 2022

Publication d'androidx.savedstate:savedstate:1.2.0-rc01 et d'androidx.savedstate:savedstate-ktx:1.2.0-rc01. Liste des commits de la version 1.2.0-rc01

Modifications de la documentation

  • Les Kdocs de SavedStateRegistryOwner ont été mis à jour pour clarifier les responsabilités et le contrat du propriétaire concernant l'implémentation de l'interface ou l'appel des méthodes sur SavedStateRegistryController. (Iefc95, b/228887344)

Version 1.2.0-beta01

20 avril 2022

Publication d'androidx.savedstate:savedstate:1.2.0-beta01 et d'androidx.savedstate:savedstate-ktx:1.2.0-beta01. Liste des commits de la version 1.2.0-beta01

Modifications apportées à l'API

  • Les classes SavedStateRegistry et ViewTreeSavedStateRegistryOwner ont été réécrites en Kotlin. Pour ViewTreeSavedStateRegistryOwner, il s'agit d'une modification incompatible avec la source pour les classes écrites en Kotlin. Vous devez désormais importer et utiliser directement les méthodes d'extension Kotlin sur View d'androidx.savedstate.setViewTreeSavedStateRegistryOwner et androidx.savedstate.findViewTreeSavedStateRegistryOwner pour définir et rechercher un propriétaire défini précédemment. Cette action remplace l'API savedstate-ktx de findViewTreeSavedStateRegistryOwner. Cette fonctionnalité est compatible avec le binaire et reste compatible avec la source pour les implémentations écrites en langage de programmation Java. (b/220191285)

Version 1.2.0-alpha02

6 avril 2022

Publication d'androidx.savedstate:savedstate:1.2.0-alpha02 et d'androidx.savedstate:savedstate-ktx:1.2.0-alpha02. Liste des commits de la version 1.2.0-alpha02.

Nouvelles fonctionnalités

  • Vous pouvez maintenant récupérer un SavedStateProvider enregistré précédemment à partir d'un SavedStateRegistry via getSavedStateProvider(). (I7ea47, b/215406268)

Modifications apportées à l'API

  • Les classes SavedStateRegistryOwner, SavedStateRegistryController et Recreator ont été réécrites en Kotlin. Pour SavedStateRegistryOwner, il s'agit d'une modification incompatible avec la source pour les classes écrites en Kotlin. Vous devez maintenant remplacer la propriété savedStateRegistry au lieu d'implémenter la fonction getSavedStateRegistry() précédente. Cette fonctionnalité est compatible avec le binaire et la source pour les implémentations écrites en langage de programmation Java. (b/220191285)

Version 1.2.0-alpha01

26 janvier 2022

Publication d'androidx.savedstate:savedstate:1.2.0-alpha01 et d'androidx.savedstate:savedstate-ktx:1.2.0-alpha01. Liste des commits de la version 1.2.0-alpha01

Nouvelles fonctionnalités

  • SavedStateRegistryController autorise désormais l'association anticipée de SavedStateRegistry via performAttach(). (Ice4bf)

Nouveaux comportements

  • SavedStateRegistry n'enregistre plus un groupe vide s'il n'y a pas d'état à enregistrer. (aosp/1896865, b/203457956)

Version 1.1.0

Version 1.1.0

10 février 2021

Publication d'androidx.savedstate:savedstate:1.1.0 et d'androidx.savedstate:savedstate-ktx:1.1.0. Liste des commits de la version 1.1.0

Principales modifications depuis la version 1.0.0

  • API ViewTreeSavedStateRegistryOwner : Une nouvelle API ViewTreeSavedStateRegistryOwner.get(View) vous permet de récupérer le conteneur SavedStateRegistry en fonction d'une instance View. Vous devez passer à Activity 1.2.0, Fragment 1.3.0 et AppCompat 1.3.0-alpha01 ou version ultérieure pour renseigner correctement ce champ.
  • Artefact savedstate-ktx : le nouvel artefact savedstate-ktx a été ajouté avec une extension Kotlin findViewTreeSavedStateRegistryOwner() pour travailler avec ViewTreeSavedStateRegistryOwner.

Version 1.1.0-rc01

16 décembre 2020

Publication d'androidx.savedstate:savedstate:1.1.0-rc01 et d'androidx.savedstate:savedstate-ktx:1.1.0-rc01 sans modification par rapport à la version 1.1.0-beta01. Liste des commits de la version 1.1.0-rc01

Version 1.1.0-beta01

1er octobre 2020

Publication d'androidx.savedstate:savedstate:1.1.0-beta01 et d'androidx.savedstate:savedstate-ktx:1.1.0-beta01 sans modification par rapport à la version 1.1.0-alpha01. Liste des commits de la version 1.1.0-beta01

Version 1.1.0-alpha01

20 mai 2020

Publication d'androidx.savedstate:savedstate:1.1.0-alpha01 et d'androidx.savedstate:savedstate-ktx:1.1.0-alpha01. Liste des commits de la version 1.1.0-alpha01

Nouvelles fonctionnalités

  • Une nouvelle API ViewTreeSavedStateRegistryOwner.get(View) vous permet de récupérer le conteneur SavedStateRegistry en fonction d'une instance View. Vous devez passer à Activity 1.2.0-alpha05, Fragment 1.3.0-alpha05 et AppCompat 1.3.0-alpha01 pour renseigner ces éléments correctement. (aosp/1298679)
  • Le nouvel artefact savedstate-ktx a été ajouté avec une extension Kotlin findViewTreeSavedStateRegistryOwner() pour travailler avec ViewTreeSavedStateRegistryOwner. (aosp/1299434)

Version 1.0.0

Version 1.0.0

5 septembre 2019

Publication d'androidx.savedstate:savedstate:1.0.0. Les commits inclus dans cette version sont disponibles sur cette page.

Principales fonctionnalités de la version 1.0.0 de SavedState

androidx.savedstate est passé à une version stable. Il s'agit d'un ensemble d'API permettant aux développeurs d'insérer des composants dans le processus restore/saveInstanceState. Le principal point d'entrée de l'API est SavedStateRegistry, qui permet de récupérer les états précédemment enregistrés à l'aide de consumeRestoredStateForKey et d'enregistrer un rappel à registerSavedStateProvider pour fournir un état enregistré une fois que le système l'a demandé.

Version 1.0.0-rc01

2 juillet 2019

Publication d'androidx.savedstate:savedstate:1.0.0-rc01. Les commits inclus dans cette version sont disponibles sur cette page.

Correction de bugs

  • Correction d'une règle ProGuard incorrecte (b/132655499)

Version 1.0.0-beta01

7 mai 2019

Publication d'androidx.savedstate:savedstate:1.0.0-beta01. Les commits inclus dans cette version sont disponibles sur cette page.

Version 1.0.0-alpha02

13 mars 2019

Publication d'androidx.savedstate:savedstate:1.0.0-alpha02. androidx.savedstate:savedstate combine les artefacts androidx.savedstate:savedstate-bundle et androidx.savedstate:savedstate-common en un seul, car il a été décidé de simplifier l'infrastructure savedstate et de supprimer les éléments génériques de SavedStateRegistry. Il n'est donc pas nécessaire de créer des modules distincts.

La liste complète des commits inclus dans cette version est disponible sur cette page.

Nouvelles fonctionnalités

  • SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ) a été ajouté. La classe donnée sera instanciée et la méthode AutoRecreated.onRecreated sera exécutée lorsque le composant propriétaire aura redémarré.

Modifications apportées à l'API

  • Génériques supprimés de SavedStateRegistry<T>
  • Suppression d'AbstractSavedStateRegistry et de BundlableSavedStateRegistry. Utilisez simplement SavedStateRegistry à la place.
  • BundleSavedStateRegistryOwner a été renommé SavedStateRegistryOwner.

Version 1.0.0-alpha01

17 décembre 2018

Il s'agit de la première version de SavedState.

Nouvelles fonctionnalités

androidx.savedstate est un nouvel ensemble d'API alpha qui permet aux développeurs d'insérer des composants dans le processus restore/saveInstanceState. Le principal point d'entrée de l'API est SavedStateRegistry<T>, qui permet de récupérer l'état précédemment enregistré via consumeRestoredStateForKey et d'enregistrer un rappel à registerSavedStateProvider pour fournir un savedstate une fois que le système l'a demandé.