Savedstate
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
2 juillet 2025 | 1.3.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.3.1" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.1" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.1") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.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.
Pour en savoir plus, consultez les documents sur l'outil Issue Tracker.
Version 1.3
Version 1.3.0
7 mai 2025
Publication d'androidx.savedstate:savedstate-*:1.3.0
. La version 1.3.0 contient ces commits.
Changements importants depuis la version 1.2.0
LocalSavedStateRegistryOwner
a été déplacé de Compose UI vers le nouveau modulesavedstate-compose
afin que ses API d'assistance basées sur Compose puissent être utilisées en dehors de Compose UI. Cette méthode doit toujours être utilisée avec Compose UI1.9.0-alpha02
et les versions ultérieures, mais elle est rétrocompatible et peut donc être utilisée avec toutes les versions de Compose.- Les extensions Kotlin
savedstate-ktx
ont été déplacées vers le module savedstate de base. - Les instances
SavedStateRegistryOwner
récupérées viafindViewTreeSavedStateRegistryOwner
peuvent désormais être résolues par le biais de parents disjoints d'une vue, commeViewOverlay
. Pour en savoir plus sur les parents de vues disjointes, consultez les notes de version de core ou la documentation dansViewTree.setViewTreeDisjointParent
.
Kotlin Multiplatform
- Le module
SavedState
est désormais compatible avec KMP. Les plates-formes compatibles incluent désormais les environnements de bureau Android, iOS, Linux, Mac et JVM. Introduction du type opaque
SavedState
en tant qu'abstraction pour fournir un moyen cohérent d'enregistrer et de restaurer l'état de l'application dans KMP. Il inclut unSavedStateReader
et unSavedStateWriter
pour modifier l'état à enregistrer. Sur Android,SavedState
est un alias de type pourBundle
, ce qui garantit la compatibilité binaire et facilite la migration des API existantes vers un ensemble de sources commun. Sur les autres plates-formes,SavedState
est une instanceMap<String, Any>
.// Create a new SavedState object using the savedState DSL: val savedState = savedState { putInt("currentPage", 1) putString("filter", "favorites") } // Read from a SavedState object val currentPage = savedState.read { getInt("currentPage") } // Edit an existing SavedState object savedState.write { remove("currentPage") }
Compatibilité avec la sérialisation KotlinX
SavedState
inclut désormais la compatibilité avec KotlinX Serialization. Vous pouvez convertir une classe annotée avec@Serializable
enSavedState
à l'aide des méthodesencodeToSavedState
etdecodeFromSavedState
. LeSavedState
renvoyé est unBundle
normal sur Android et peut être utilisé par n'importe quelle API acceptant unBundle
.@Serializable data class Person(val firstName: String, val lastName: String) fun main() { val person = Person("John", "Doe") val encoded: SavedState = encodeToSavedState(person) val decoded: Person = decodeFromSavedState(encoded) }
Alors que la plupart des types (tels que les types primitifs) sont directement pris en charge sans aucune configuration requise, vous trouverez des sérialiseurs supplémentaires pouvant être utilisés avec
@Serializable(with = ___:class)
dans le packageandroidx.savedstate.serialization.serializers
du modulesavedstate
et dans le packageandroidx.savedstate.compose.serialization.serializers
du modulesavedstate-compose
.Nous avons également inclus
saved
, un délégué de propriété différée, pour faciliter le stockage des classes@Serializable
dans unSavedStateRegistryOwner
(par exemple,ComponentActivity
,Fragment
, etc.) et que ces classes soient automatiquement restaurées en cas d'arrêt et de recréation du processus. Veuillez noter que le déléguésaved
est différé et n'appellera pas le lambdainit
ni n'enregistrera quoi que ce soit dansSavedStateRegistry
tant qu'il n'y aura pas accès.@Serializable data class Person(val firstName: String, val lastName: String) class MyActivity : ComponentActivity() { var person by saved { Person("John", "Doe") } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.person = Person("Jane", "Doe") } }
Un délégué de propriété
saved
semblable pourSavedStateHandle
a été ajouté dans Lifecycle2.9.0
.
Version 1.3.0-rc01
23 avril 2025
Publication d'androidx.savedstate:savedstate-*:1.3.0-rc01
. La version 1.3.0-rc01 contient ces commits.
Version 1.3.0-beta01
9 avril 2025
Publication d'androidx.savedstate:savedstate-*:1.3.0-beta01
. La version 1.3.0-beta01 contient ces commits.
Mises à jour des dépendances
- Cette bibliothèque cible désormais le langage Kotlin 2.0 et nécessite KGP 2.0.0 ou version ultérieure. (Idb6b5)
Version 1.3.0-alpha11
26 mars 2025
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha11
sans aucune modification publique notable. La version 1.3.0-alpha11 contient ces commits.
Version 1.3.0-alpha10
12 mars 2025
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha10
. La version 1.3.0-alpha10 contient ces commits.
Nouvelles fonctionnalités
- Ajout de variantes de méthodes non réifiées pour les collections
get
dansSavedStateReader
. (I0b641, b/399820614) - Ajout de
encodeDefaults
àSavedStateConfiguration
, ce qui permet de personnaliser l'encodage des propriétés avec des valeurs par défaut. (I893cc, b/395104517) - Ajoutez
SnapshotStateMapSerializer
pour prendre en chargemutableStateMapOf
. (Ie6f19, b/378895074) - Ajoutez
SnapshotStateListSerializer
pour prendre en chargemutableStateListOf
. (I4d888, b/378895074) - Ajout de méthodes alternatives
getOrNull
pour les variantesSavedStateReader.get
. Ces méthodes encapsuleront automatiquement les valeurs primitives. (I6228c, b/399820614)
Modifications apportées à l'API
- Supprimez
getOrElse
deSavedStateReader
et remplacez-le pargetOrNull() ?: else()
. (I87317, b/399820614) - Supprimez le modificateur
inline
des méthodesSavedStateReader
etSavedStateWriter
. (If2a02, b/399820614) - Suppression des sérialiseurs de liste et de tableau intégrés spécifiques à Android de l'API publique (Ida293)
- Remplacement de
SparseParcelableArraySerializer
parSparseArraySerializer
(I91de8) - Rendre tous les
SavedStateReader.get
cohérents en générant une exception lorsque le type de valeur ne correspond pas au type de retour (I78c4a, b/399317598) SavedState*Delegates
a été renomméSavedState*Delegate
. (I8589b, b/399629301)SavedStateConfig
a été renomméSavedStateConfiguration
. (I043a5, b/399629301)
Version 1.3.0-alpha09
26 février 2025
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha09
. La version 1.3.0-alpha09 contient ces commits.
Nouvelles fonctionnalités
- Ajoutez un remplacement pour les types intégrés, en veillant à ce que tous les types compatibles avec
Bundle
puissent être utilisés avecencodeAsSavedState
/decodeFromSavedState
par défaut ou, pour les propriétés des classes@Serializable
, via l'annotation@Contextual
. (Ic01d2) - Incluez la prise en charge de
classDiscriminator
etclassDiscriminatorMode
surSavedStateConfig
. (I69b66, b/395104517)
Modifications apportées à l'API
- Ajout du paramètre
SavedStateConfig
aux déléguéssaved()
(I39b3a) - Les sérialiseurs intégrés sont désormais des objets singleton (Ifeee4).
- Les propriétés
SavedStateConfig
sont désormais publiques, ce qui permet à d'autres modules d'utiliser ces configurations. (Ie5f49, b/378897438) - Prise en charge de
@Serializer(with = ...)
pourMutableStateFlowSerializer
etMutableStateSerializer
(I90953) - Ajout de
contentDeepToString
àSavedStateReader
(I14d10).
Version 1.3.0-alpha08
12 février 2025
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha08
. La version 1.3.0-alpha08 contient ces commits.
Nouvelles fonctionnalités
- Déplacez
MutableStateSerializer
verssavedstate-compose
depuislifecycle-viewmodel-compose
, ce qui vous permet d'utiliser les API de sérialisation SavedState avecMutableState
de Compose. (I4f690, b/378895074)
Modifications apportées à l'API
- Ajoutez une fonction de fabrique pour créer
SavedState
à partir d'unSavedState
existant. (I39f9a) - Ajout de la prise en charge de
Array<SavedState>
etList<SavedState>
dansandroidx.savedstate
. (Idd8a5) - Ajout du paramètre facultatif
SavedStateConfig
à l'encodage/décodage SavedState (I6c4c0)
Version 1.3.0-alpha07
29 janvier 2025
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha07
. La version 1.3.0-alpha07 contient ces commits.
Nouvelles fonctionnalités
- Ajout de
MutableStateFlowSerializer
pour la sérialisation dekotlinx.coroutines.flow.MutableStateFlow
. (I6a892, b/378895070)
Modifications apportées à l'API
- Remplacer les fonctions déléguées
SavedStateRegistryOwner.saved()
surchargées par des paramètres par défaut (Icd1c1) - Rendre
JavaSerializableSerializer
etParcelableSerializer
abstraits (I268f6) - Suppression de
T : CharSequence
générique deCharSequenceSerializer
(Ib40bd)
Version 1.3.0-alpha06
11 décembre 2024
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha06
. La version 1.3.0-alpha06 contient ces commits.
Nouvelles fonctionnalités
SavedState
: KMP est désormais compatible avecIBinder
,Size
,SizeF
,Array<Parcelable>
,SparseArray<Parcelable>
et Serializable (Android). (I1ba94, b/334076622)- Ajoutez des instances
KSerializer
pouvant être utilisées pour encoder/décoder les types Java et Android compatibles avec Bundle en marquant le champ concerné dans votre classe avec@Serializable(with = ParcelableSerializer::class)
. (I8c10f, I28caf, b/376026712) - Les instances
SavedStateRegistryOwner
récupérées viafindViewTreeSavedStateRegistryOwner
peuvent désormais être résolues par le biais de parents disjoints d'une vue, commeViewOverlay
. Pour en savoir plus sur les parents de vues disjointes, consultez les notes de version de core ou la documentation dansViewTree.setViewTreeDisjointParent
. (Iccb33)
Modifications apportées à l'API
- Rendre les noms et l'organisation des packages plus cohérents avec
SavedStateRegistryOwnerDelegate
(I8c135, b/376026744)
Version 1.3.0-alpha05
13 novembre 2024
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha05
. La version 1.3.0-alpha05 contient ces commits.
Compatibilité avec la sérialisation KotlinX
SavedState
inclut désormais la compatibilité avec KotlinX Serialization. Vous pouvez convertir une classe annotée avec@Serializable
enSavedState
à l'aide des méthodesencodeToSavedState
etdecodeFromSavedState
. LeSavedState
renvoyé est unBundle
normal sur Android et peut être utilisé par n'importe quelle API acceptant unBundle
. (I6f59f, b/374102924)@Serializable data class Person(val firstName: String, val lastName: String) fun main() { val person = Person("John", "Doe") val encoded: SavedState = encodeToSavedState(person) val decoded: Person = decodeFromSavedState(encoded) }
Nous avons également inclus
saved
, un délégué de propriété différée, pour faciliter le stockage des classes@Serializable
dans unSavedStateRegistryOwner
(par exemple,ComponentActivity
,Fragment
, etc.) et que ces classes soient automatiquement restaurées en cas d'arrêt et de recréation du processus. Veuillez noter que le déléguésaved
est différé et n'appellera pas le lambdainit
ni n'enregistrera quoi que ce soit dansSavedStateRegistry
tant qu'il n'y aura pas accès. (I66739, b/376027806)@Serializable data class Person(val firstName: String, val lastName: String) class MyActivity : ComponentActivity() { var person by saved { Person("John", "Doe") } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.person = Person("Jane", "Doe") } }
Un délégué de propriété
saved
semblable pourSavedStateHandle
a été ajouté dans Lifecycle2.9.0-alpha07
.
Modifications apportées à l'API
- Ajoutez
toMap
àSavedState
, ce qui permet de convertir n'importe quelSavedState
enMap
standard (copie superficielle). (I487b9, b/334076622) SavedState
KMP est désormais compatible avec les tableaux. (Ic0552, b/334076622)
Version 1.3.0-alpha04
30 octobre 2024
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha04
. La version 1.3.0-alpha04 contient ces commits.
Modifications apportées à l'API
- SavedState KMP est désormais compatible avec Char. (I9ac2f, b/334076622)
- Ajoutez
putNull
etisNull
à SavedState KMP. (Iea71d, b/334076622) - Ajout de paramètres de fabrique
savedState
supplémentaires prenant en charge unMap<String, Any>
initial (I9b37d, b/334076622) - SavedState KMP est désormais compatible avec la comparaison
contentDeepEquals
. (Ia515c, b/334076622) - SavedState KMP est désormais compatible avec Long. (I4c180, b/334076622)
Version 1.3.0-alpha03
16 octobre 2024
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha03
sans modification notable. La version 1.3.0-alpha03 contient ces commits.
Version 1.3.0-alpha02
2 octobre 2024
Publication d'androidx.savedstate:savedstate-*:1.3.0-alpha02
. La version 1.3.0-alpha02 contient ces commits.
Kotlin Multiplatform
- Le module
SavedState
est désormais compatible avec KMP. Les plates-formes compatibles incluent désormais les environnements de bureau Android, iOS, Linux, Mac et JVM. (I26305, b/334076622)
Nouvelles fonctionnalités
- Introduction du type opaque
SavedState
en tant qu'abstraction pour fournir un moyen cohérent d'enregistrer et de restaurer l'état de l'application dans KMP. Il inclut unSavedStateReader
et unSavedStateWriter
pour modifier l'état à enregistrer. Sur Android,SavedState
est un alias de type pourBundle
, ce qui garantit la compatibilité binaire et facilite la migration des API existantes vers un ensemble de sources commun. Sur les autres plates-formes,SavedState
est une instanceMap<String, Any>
. (I18575, b/334076622)
// Create a new SavedState object using the savedState DSL:
val savedState = savedState {
putInt("currentPage", 1)
putString("filter", "favorites")
}
// Read from a SavedState object
val currentPage = savedState.read { getInt("currentPage") }
// Edit an existing SavedState object
savedState.write {
remove("currentPage")
}
Modifications apportées à l'API
SavedStateRegistry
etSavedStateRegistryController
sont désormais compatibles avec KMP. (Id7bb8, b/334076622)SavedState
,SavedStateWriter
etSavedStateReader
sont désormais compatibles avec KMP. (I26305, b/334076622)
Version 1.3.0-alpha01
7 août 2024
Publication d'androidx.savedstate:savedstate:1.3.0-alpha01
et d'androidx.savedstate:savedstate-ktx:1.3.0-alpha01
. La version 1.3.0-alpha01 contient ces commits.
Modifications apportées à l'API
- Les extensions Kotlin
savedstate-ktx
ont été déplacées vers le module savedstate de base. (I1cc18, b/274803094)
Commentaire
- Mettre à jour
compileSdk
vers 35 (5dc41be)
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
SavedState
dépend désormais de Lifecycle2.6.1
. (c1f621)
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 deSavedStateRegistry
viaperformAttach()
.- Vous pouvez maintenant récupérer un
SavedStateProvider
enregistré précédemment à partir d'unSavedStateRegistry
viagetSavedStateProvider()
. - 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 fonctiongetSavedStateRegistry()
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 surView
deandroidx.savedstate.setViewTreeSavedStateRegistryOwner
etandroidx.savedstate.findViewTreeSavedStateRegistryOwner
pour définir et rechercher un propriétaire défini précédemment. Cette action remplace l'APIsavedstate-ktx
defindViewTreeSavedStateRegistryOwner
.
- Pour
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 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 surSavedStateRegistryController
. (Iefc95, b/228887344)
Version 1.2.0-beta01
20 avril 2022
Publication d'androidx.savedstate:savedstate:1.2.0-beta01
et 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
etViewTreeSavedStateRegistryOwner
ont été réécrites en Kotlin. PourViewTreeSavedStateRegistryOwner
, 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 surView
d'androidx.savedstate.setViewTreeSavedStateRegistryOwner
etandroidx.savedstate.findViewTreeSavedStateRegistryOwner
pour définir et rechercher un propriétaire défini précédemment. Cette action remplace l'APIsavedstate-ktx
defindViewTreeSavedStateRegistryOwner
. 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 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'unSavedStateRegistry
viagetSavedStateProvider()
. (I7ea47, b/215406268)
Modifications apportées à l'API
- Les classes
SavedStateRegistryOwner
,SavedStateRegistryController
etRecreator
ont été réécrites en Kotlin. PourSavedStateRegistryOwner
, 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 fonctiongetSavedStateRegistry()
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 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 deSavedStateRegistry
viaperformAttach()
. (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 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 APIViewTreeSavedStateRegistryOwner.get(View)
vous permet de récupérer le conteneurSavedStateRegistry
en fonction d'une instanceView
. Vous devez passer à Activity1.2.0
, Fragment1.3.0
et AppCompat1.3.0-alpha01
ou version ultérieure pour renseigner correctement ce champ. - Artefact
savedstate-ktx
: le nouvel artefactsavedstate-ktx
a été ajouté avec une extension KotlinfindViewTreeSavedStateRegistryOwner()
pour travailler avecViewTreeSavedStateRegistryOwner
.
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 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 conteneurSavedStateRegistry
en fonction d'une instanceView
. Vous devez passer à Activity1.2.0-alpha05
, Fragment1.3.0-alpha05
et AppCompat1.3.0-alpha01
pour renseigner ces éléments correctement. (aosp/1298679) - Le nouvel artefact
savedstate-ktx
a été ajouté avec une extension KotlinfindViewTreeSavedStateRegistryOwner()
pour travailler avecViewTreeSavedStateRegistryOwner
. (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éthodeAutoRecreated.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é.