Savedstate
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Alpha Release |
---|---|---|---|---|
2 luglio 2025 | 1.3.1 | - | - | - |
Dichiarazione di dipendenze
Per aggiungere una dipendenza da SavedState, devi aggiungere il Repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti che ti servono nel file build.gradle
per
la tua app o il tuo modulo:
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") }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa libreria. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 1.3
Versione 1.3.0
7 maggio 2025
androidx.savedstate:savedstate-*:1.3.0
viene ritirata. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
LocalSavedStateRegistryOwner
è stato spostato dalla UI di Compose al nuovo modulosavedstate-compose
, in modo che le relative API helper basate su Compose possano essere utilizzate al di fuori della UI di Compose. Questo valore deve essere sempre utilizzato quando si utilizza Compose UI1.9.0-alpha02
e versioni successive, ma è compatibile con le versioni precedenti, quindi può essere utilizzato con tutte le versioni di Compose.- Le estensioni Kotlin
savedstate-ktx
sono state spostate nel modulo savedstate di base. - Le istanze
SavedStateRegistryOwner
recuperate tramitefindViewTreeSavedStateRegistryOwner
ora possono essere risolte tramite genitori disgiunti di una vista, ad esempio unViewOverlay
. Per ulteriori informazioni sui genitori della visualizzazione disgiunta, consulta le note di rilascio di core o la documentazione inViewTree.setViewTreeDisjointParent
.
Kotlin Multiplatform
- Il modulo
SavedState
ora è compatibile con KMP. Le piattaforme supportate ora includono ambienti desktop Android, iOS, Linux, Mac e JVM. Introduci il tipo opaco
SavedState
come astrazione per fornire un modo coerente per salvare e ripristinare lo stato dell'applicazione in KMP. IncludeSavedStateReader
eSavedStateWriter
per modificare lo stato da salvare. Su Android,SavedState
è un alias di tipo perBundle
, che garantisce la compatibilità binaria e facilita la migrazione delle API esistenti a un insieme di origini comune. Su altre piattaforme,SavedState
è un'istanzaMap<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") }
Supporto della serializzazione KotlinX
SavedState
ora include il supporto di KotlinX Serialization. Puoi convertire una classe annotata con@Serializable
in unSavedState
utilizzando i metodiencodeToSavedState
edecodeFromSavedState
. IlSavedState
restituito è un normaleBundle
su Android e può essere utilizzato da qualsiasi API che accetta 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) }
Mentre la maggior parte dei tipi (come i tipi primitivi) è supportata direttamente senza necessità di configurazione, i serializzatori aggiuntivi che possono essere utilizzati con
@Serializable(with = ___:class)
si trovano nel pacchettoandroidx.savedstate.serialization.serializers
nel modulosavedstate
e nel pacchettoandroidx.savedstate.compose.serialization.serializers
nel modulosavedstate-compose
.Abbiamo incluso anche
saved
, un delegato di proprietà pigro, per semplificare l'archiviazione delle classi@Serializable
in unSavedStateRegistryOwner
(ad es.ComponentActivity
,Fragment
e così via) e ripristinarle automaticamente in caso di interruzione e ricreazione del processo. Tieni presente che il delegatosaved
è pigro e non chiamerà la lambdainit
né salverà nulla inSavedStateRegistry
finché non viene eseguito l'accesso.@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") } }
In Ciclo di vita
2.9.0
è stato aggiunto un delegato di proprietàsaved
simile perSavedStateHandle
.
Versione 1.3.0-rc01
23 aprile 2025
androidx.savedstate:savedstate-*:1.3.0-rc01
viene ritirata. La versione 1.3.0-rc01 contiene questi commit.
Versione 1.3.0-beta01
9 aprile 2025
androidx.savedstate:savedstate-*:1.3.0-beta01
viene ritirata. La versione 1.3.0-beta01 contiene questi commit.
Aggiornamenti delle dipendenze
- Questa libreria ora ha come target il livello del linguaggio Kotlin 2.0 e richiede KGP 2.0.0 o versioni successive. (Idb6b5)
Versione 1.3.0-alpha11
26 marzo 2025
androidx.savedstate:savedstate-*:1.3.0-alpha11
viene rilasciato senza modifiche pubbliche degne di nota. La versione 1.3.0-alpha11 contiene questi commit.
Versione 1.3.0-alpha10
12 marzo 2025
androidx.savedstate:savedstate-*:1.3.0-alpha10
viene ritirata. La versione 1.3.0-alpha10 contiene questi commit.
Nuove funzionalità
- Aggiungi varianti di metodi non reificati per le raccolte
get
inSavedStateReader
. (I0b641, b/399820614) - Aggiungi
encodeDefaults
aSavedStateConfiguration
, consentendo di personalizzare se le proprietà con valori predefiniti devono essere codificate. (I893cc, b/395104517) - Aggiungi
SnapshotStateMapSerializer
per supportaremutableStateMapOf
. (Ie6f19, b/378895074) - Aggiungi
SnapshotStateListSerializer
per supportaremutableStateListOf
. (I4d888, b/378895074) - Aggiungi
getOrNull
metodi alternativi per le variantiSavedStateReader.get
. Questi metodi eseguono il boxing automatico dei valori primitivi. (I6228c, b/399820614)
Modifiche alle API
- Rimuovi
getOrElse
daSavedStateReader
a favore digetOrNull() ?: else()
. (I87317, b/399820614) - Rimuovi il modificatore
inline
dai metodiSavedStateReader
eSavedStateWriter
. (If2a02, b/399820614) - Rimozione dei serializzatori di elenchi e array specifici per Android integrati dall'API pubblica (Ida293)
- Sostituisci
SparseParcelableArraySerializer
conSparseArraySerializer
(I91de8) - Fai in modo che tutti i
SavedStateReader.get
si comportino in modo coerente generando un errore quando il tipo di valore non corrisponde al tipo restituito (I78c4a, b/399317598) - Rinomina
SavedState*Delegates
inSavedState*Delegate
. (I8589b, b/399629301) - Rinomina
SavedStateConfig
inSavedStateConfiguration
. (I043a5, b/399629301)
Versione 1.3.0-alpha09
26 febbraio 2025
androidx.savedstate:savedstate-*:1.3.0-alpha09
viene ritirata. La versione 1.3.0-alpha09 contiene questi commit.
Nuove funzionalità
- Aggiungi il fallback per i tipi integrati, assicurandoti che tutti i tipi supportati da
Bundle
possano essere utilizzati conencodeAsSavedState
/decodeFromSavedState
per impostazione predefinita o, per le proprietà nelle classi@Serializable
, tramite l'annotazione@Contextual
. (Ic01d2) - Includi il supporto per
classDiscriminator
eclassDiscriminatorMode
suSavedStateConfig
. (I69b66, b/395104517)
Modifiche alle API
- Aggiungi il parametro
SavedStateConfig
ai delegati disaved()
(I39b3a) - Rende i serializzatori integrati oggetti singleton (Ifeee4)
- Le proprietà
SavedStateConfig
sono ora pubbliche, consentendo ad altri moduli di utilizzare queste configurazioni. (Ie5f49, b/378897438) - Supporto
@Serializer(with = ...)
perMutableStateFlowSerializer
eMutableStateSerializer
(I90953) - Aggiungi
contentDeepToString
aSavedStateReader
(I14d10)
Versione 1.3.0-alpha08
12 febbraio 2025
androidx.savedstate:savedstate-*:1.3.0-alpha08
viene ritirata. La versione 1.3.0-alpha08 contiene questi commit.
Nuove funzionalità
- Sposta
MutableStateSerializer
insavedstate-compose
dalifecycle-viewmodel-compose
, consentendoti di utilizzare le API di serializzazione SavedState conMutableState
di Compose. (I4f690, b/378895074)
Modifiche alle API
- Aggiungi una funzione di fabbrica per creare
SavedState
da unSavedState
esistente. (I39f9a) - Aggiunge il supporto per
Array<SavedState>
eList<SavedState>
inandroidx.savedstate
. (Idd8a5) - Aggiungi il parametro facoltativo
SavedStateConfig
alla codifica/decodifica di SavedState (I6c4c0)
Versione 1.3.0-alpha07
29 gennaio 2025
androidx.savedstate:savedstate-*:1.3.0-alpha07
viene ritirata. La versione 1.3.0-alpha07 contiene questi commit.
Nuove funzionalità
- Aggiungi
MutableStateFlowSerializer
per la serializzazione dikotlinx.coroutines.flow.MutableStateFlow
. (I6a892, b/378895070)
Modifiche alle API
- Sostituisci le funzioni delegate
SavedStateRegistryOwner.saved()
sovraccariche con i parametri predefiniti (Icd1c1) - Rendi
JavaSerializableSerializer
eParcelableSerializer
astratti (I268f6) - Rimuovi
T : CharSequence
generico daCharSequenceSerializer
(Ib40bd)
Versione 1.3.0-alpha06
11 dicembre 2024
androidx.savedstate:savedstate-*:1.3.0-alpha06
viene ritirata. La versione 1.3.0-alpha06 contiene questi commit.
Nuove funzionalità
SavedState
KMP ora supporta:IBinder
,Size
,SizeF
,Array<Parcelable>
,SparseArray<Parcelable>
e Serializable (Android). (I1ba94, b/334076622)- Aggiungi istanze
KSerializer
che possono essere utilizzate per codificare/decodificare i tipi Java e Android supportati da Bundle contrassegnando il campo pertinente nella classe con@Serializable(with = ParcelableSerializer::class)
. (I8c10f, I28caf, b/376026712) - Le istanze
SavedStateRegistryOwner
recuperate tramitefindViewTreeSavedStateRegistryOwner
ora possono essere risolte tramite genitori disgiunti di una vista, ad esempio unViewOverlay
. Per ulteriori informazioni sui genitori della visualizzazione disgiunta, consulta le note di rilascio di core o la documentazione inViewTree.setViewTreeDisjointParent
. (Iccb33)
Modifiche alle API
- Rendere i nomi e l'organizzazione dei pacchetti più coerenti con
SavedStateRegistryOwnerDelegate
(I8c135, b/376026744)
Versione 1.3.0-alpha05
13 novembre 2024
androidx.savedstate:savedstate-*:1.3.0-alpha05
viene ritirata. La versione 1.3.0-alpha05 contiene questi commit.
Supporto della serializzazione KotlinX
SavedState
ora include il supporto di KotlinX Serialization. Puoi convertire una classe annotata con@Serializable
in unSavedState
utilizzando i metodiencodeToSavedState
edecodeFromSavedState
. IlSavedState
restituito è un normaleBundle
su Android e può essere utilizzato da qualsiasi API che accetta 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) }
Abbiamo incluso anche
saved
, un delegato di proprietà pigro, per semplificare l'archiviazione delle classi@Serializable
in unSavedStateRegistryOwner
(ad es.ComponentActivity
,Fragment
e così via) e ripristinarle automaticamente in caso di interruzione e ricreazione del processo. Tieni presente che il delegatosaved
è pigro e non chiamerà la lambdainit
né salverà nulla inSavedStateRegistry
finché non viene eseguito l'accesso. (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") } }
In Ciclo di vita
2.9.0-alpha07
è stato aggiunto un delegato di proprietàsaved
simile perSavedStateHandle
.
Modifiche alle API
- Aggiungi
toMap
aSavedState
, consentendo la conversione di qualsiasiSavedState
in unMap
normale (copia superficiale). (I487b9, b/334076622) SavedState
KMP ora supporta gli array. (Ic0552, b/334076622)
Versione 1.3.0-alpha04
30 ottobre 2024
androidx.savedstate:savedstate-*:1.3.0-alpha04
viene ritirata. La versione 1.3.0-alpha04 contiene questi commit.
Modifiche alle API
- SavedState KMP ora supporta Char. (I9ac2f, b/334076622)
- Aggiungi
putNull
eisNull
a SavedState KMP. (Iea71d, b/334076622) - Aggiungi parametri di fabbrica
savedState
aggiuntivi che supportano unMap<String, Any>
iniziale (I9b37d, b/334076622) - SavedState KMP ora supporta il confronto
contentDeepEquals
. (Ia515c, b/334076622) - SavedState KMP ora supporta Long. (I4c180, b/334076622)
Versione 1.3.0-alpha03
16 ottobre 2024
androidx.savedstate:savedstate-*:1.3.0-alpha03
viene rilasciato senza modifiche significative. La versione 1.3.0-alpha03 contiene questi commit.
Versione 1.3.0-alpha02
2 ottobre 2024
androidx.savedstate:savedstate-*:1.3.0-alpha02
viene ritirata. La versione 1.3.0-alpha02 contiene questi commit.
Kotlin Multiplatform
- Il modulo
SavedState
ora è compatibile con KMP. Le piattaforme supportate ora includono ambienti desktop Android, iOS, Linux, Mac e JVM. (I26305, b/334076622)
Nuove funzionalità
- Introduci il tipo opaco
SavedState
come astrazione per fornire un modo coerente per salvare e ripristinare lo stato dell'applicazione in KMP. IncludeSavedStateReader
eSavedStateWriter
per modificare lo stato da salvare. Su Android,SavedState
è un alias di tipo perBundle
, che garantisce la compatibilità binaria e facilita la migrazione delle API esistenti a un insieme di origini comune. Su altre piattaforme,SavedState
è un'istanzaMap<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")
}
Modifiche alle API
SavedStateRegistry
eSavedStateRegistryController
ora sono compatibili con KMP. (Id7bb8, b/334076622)SavedState
,SavedStateWriter
eSavedStateReader
ora sono compatibili con KMP. (I26305, b/334076622)
Versione 1.3.0-alpha01
7 agosto 2024
androidx.savedstate:savedstate:1.3.0-alpha01
e androidx.savedstate:savedstate-ktx:1.3.0-alpha01
sono stati rilasciati. La versione 1.3.0-alpha01 contiene questi commit.
Modifiche alle API
- Le estensioni Kotlin
savedstate-ktx
sono state spostate nel modulo savedstate di base. (I1cc18, b/274803094)
Note
- Aggiornamento di
compileSdk
alla versione 35 (5dc41be)
Versione 1.2.1
Versione 1.2.1
22 marzo 2023
androidx.savedstate:savedstate:1.2.1
e androidx.savedstate:savedstate-ktx:1.2.1
sono stati rilasciati. La versione 1.2.1 contiene questi commit.
Aggiornamenti delle dipendenze
SavedState
ora dipende da Ciclo di vita2.6.1
. (c1f621)
Versione 1.2.0
Versione 1.2.0
29 giugno 2022
androidx.savedstate:savedstate:1.2.0
e androidx.savedstate:savedstate-ktx:1.2.0
sono stati rilasciati. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
SavedStateRegistryController
ora consente l'allegato anticipato diSavedStateRegistry
tramiteperformAttach()
.- Ora puoi recuperare un
SavedStateProvider
registrato in precedenza da unSavedStateRegistry
tramitegetSavedStateProvider()
. - La libreria
SavedState
è stata riscritta in Kotlin.- Per
SavedStateRegistryOwner
, si tratta di una modifica incompatibile con l'origine per le classi scritte in Kotlin: ora devi eseguire l'override della proprietàsavedStateRegistry
anziché implementare la funzionegetSavedStateRegistry()
precedente. - Per
ViewTreeSavedStateRegistryOwner
, si tratta di una modifica incompatibile con l'origine per le classi scritte in Kotlin: ora devi importare e utilizzare direttamente i metodi di estensione Kotlin suView
diandroidx.savedstate.setViewTreeSavedStateRegistryOwner
eandroidx.savedstate.findViewTreeSavedStateRegistryOwner
per impostare e trovare un proprietario impostato in precedenza. Questa sostituisce l'APIsavedstate-ktx
difindViewTreeSavedStateRegistryOwner
.
- Per
Modifiche al comportamento
SavedStateRegistry
non salva più un bundle vuoto se non c'è stato da salvare.
Versione 1.2.0-rc01
11 maggio 2022
androidx.savedstate:savedstate:1.2.0-rc01
e androidx.savedstate:savedstate-ktx:1.2.0-rc01
sono stati rilasciati. La versione 1.2.0-rc01 contiene questi commit.
Modifiche alla documentazione
- I
SavedStateRegistryOwner
Kdocs sono stati aggiornati per chiarire le responsabilità e il contratto che il proprietario ha in merito a come deve implementare l'interfaccia o quando deve chiamare i metodi suSavedStateRegistryController
. (Iefc95, b/228887344)
Versione 1.2.0-beta01
20 aprile 2022
androidx.savedstate:savedstate:1.2.0-beta01
e androidx.savedstate:savedstate-ktx:1.2.0-beta01
sono stati rilasciati. La versione 1.2.0-beta01 contiene questi commit.
Modifiche alle API
- Le classi
SavedStateRegistry
eViewTreeSavedStateRegistryOwner
sono state riscritte in Kotlin. PerViewTreeSavedStateRegistryOwner
, si tratta di una modifica incompatibile con l'origine per le classi scritte in Kotlin: ora devi importare e utilizzare direttamente i metodi di estensione Kotlin suView
diandroidx.savedstate.setViewTreeSavedStateRegistryOwner
eandroidx.savedstate.findViewTreeSavedStateRegistryOwner
per impostare e trovare un proprietario impostato in precedenza. Questa sostituisce l'APIsavedstate-ktx
difindViewTreeSavedStateRegistryOwner
. È compatibile a livello binario e rimane compatibile a livello di codice sorgente per le implementazioni scritte nel linguaggio di programmazione Java. (b/220191285)
Versione 1.2.0-alpha02
6 aprile 2022
androidx.savedstate:savedstate:1.2.0-alpha02
e androidx.savedstate:savedstate-ktx:1.2.0-alpha02
sono stati rilasciati. La versione 1.2.0-alpha02 contiene questi commit.
Nuove funzionalità
- Ora puoi recuperare un
SavedStateProvider
registrato in precedenza da unSavedStateRegistry
tramitegetSavedStateProvider()
. (I7ea47, b/215406268)
Modifiche alle API
- Le classi
SavedStateRegistryOwner
,SavedStateRegistryController
eRecreator
sono state riscritte in Kotlin. PerSavedStateRegistryOwner
, si tratta di una modifica incompatibile con l'origine per le classi scritte in Kotlin: ora devi eseguire l'override della proprietàsavedStateRegistry
anziché implementare la funzionegetSavedStateRegistry()
precedente. È compatibile a livello binario e di codice sorgente per le implementazioni scritte nel linguaggio di programmazione Java. (b/220191285)
Versione 1.2.0-alpha01
26 gennaio 2022
androidx.savedstate:savedstate:1.2.0-alpha01
e androidx.savedstate:savedstate-ktx:1.2.0-alpha01
sono stati rilasciati. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
SavedStateRegistryController
ora consente l'allegato anticipato diSavedStateRegistry
tramiteperformAttach()
. (Ice4bf)
Modifiche al comportamento
SavedStateRegistry
non salva più un bundle vuoto se non c'è stato da salvare. (aosp/1896865, b/203457956)
Versione 1.1.0
Versione 1.1.0
10 febbraio 2021
androidx.savedstate:savedstate:1.1.0
e androidx.savedstate:savedstate-ktx:1.1.0
sono stati rilasciati. La versione 1.1.0 contiene questi commit.
Modifiche principali dalla versione 1.0.0
- API
ViewTreeSavedStateRegistryOwner
: una nuova APIViewTreeSavedStateRegistryOwner.get(View)
consente di recuperare l'SavedStateRegistry
contenitore dato un'istanzaView
. Per compilare correttamente questo campo, devi eseguire l'upgrade ad Activity1.2.0
, Fragment1.3.0
e AppCompat1.3.0-alpha01
o versioni successive. savedstate-ktx
artefatto: è stato aggiunto il nuovo artefattosavedstate-ktx
con un'estensionefindViewTreeSavedStateRegistryOwner()
Kotlin per l'utilizzo diViewTreeSavedStateRegistryOwner
.
Versione 1.1.0-rc01
16 dicembre 2020
androidx.savedstate:savedstate:1.1.0-rc01
e androidx.savedstate:savedstate-ktx:1.1.0-rc01
vengono rilasciati senza modifiche dal giorno 1.1.0-beta01
. La versione 1.1.0-rc01 contiene questi commit.
Versione 1.1.0-beta01
1° ottobre 2020
androidx.savedstate:savedstate:1.1.0-beta01
e androidx.savedstate:savedstate-ktx:1.1.0-beta01
vengono rilasciati senza modifiche dal giorno 1.1.0-alpha01
. La versione 1.1.0-beta01 contiene questi commit.
Versione 1.1.0-alpha01
20 maggio 2020
androidx.savedstate:savedstate:1.1.0-alpha01
e androidx.savedstate:savedstate-ktx:1.1.0-alpha01
sono stati rilasciati. La versione 1.1.0-alpha01 contiene questi commit.
Nuove funzionalità
- Una nuova API
ViewTreeSavedStateRegistryOwner.get(View)
ti consente di recuperare ilSavedStateRegistry
contenitore dato un'istanzaView
. Per compilare correttamente questo campo, devi eseguire l'upgrade ad Activity1.2.0-alpha05
, Fragment1.3.0-alpha05
e AppCompat1.3.0-alpha01
. (aosp/1298679) - Il nuovo artefatto
savedstate-ktx
è stato aggiunto con un'estensione Kotlin per l'utilizzo diViewTreeSavedStateRegistryOwner
.findViewTreeSavedStateRegistryOwner()
(aosp/1299434)
Versione 1.0.0
Versione 1.0.0
5 settembre 2019
androidx.savedstate:savedstate:1.0.0
viene ritirata. I commit inclusi in questa versione sono disponibili qui.
Funzionalità principali di SavedState 1.0.0
androidx.savedstate
è stata promossa a release stabile. Si tratta di un insieme di API che consentono agli sviluppatori di collegare componenti al processo di ripristino / salvataggio di istanze. Il punto di accesso principale dell'API è SavedStateRegistry
, che fornisce un modo per recuperare gli stati salvati in precedenza utilizzando consumeRestoredStateForKey
e registrare un callback in registerSavedStateProvider
per fornire uno stato salvato una volta che il sistema lo richiede.
Versione 1.0.0-rc01
2 luglio 2019
androidx.savedstate:savedstate:1.0.0-rc01
viene ritirata. I commit inclusi in questa versione sono disponibili qui.
Correzioni di bug
- Correzione della regola Proguard errata (b/132655499)
Versione 1.0.0-beta01
7 maggio 2019
androidx.savedstate:savedstate:1.0.0-beta01
viene ritirata. I commit inclusi in questa versione sono disponibili qui.
Versione 1.0.0-alpha02
13 marzo 2019
androidx.savedstate:savedstate:1.0.0-alpha02
viene ritirata. androidx.savedstate:savedstate
combina gli artefatti androidx.savedstate:savedstate-bundle
e androidx.savedstate:savedstate-common
in un unico artefatto, perché è stato deciso di semplificare l'infrastruttura savedstate e rimuovere i generici da SavedStateRegistry
. Pertanto, non sono necessari moduli separati.
L'elenco completo dei commit inclusi in questa versione è disponibile qui.
Nuove funzionalità
- Membri aggiunti:
SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz )
La classe specificata verrà istanziata e il metodoAutoRecreated.onRecreated
verrà eseguito al riavvio del componente proprietario.
Modifiche all'API
- Generici rimossi da
SavedStateRegistry<T>
- AbstractSavedStateRegistry e BundlableSavedStateRegistry sono stati rimossi, utilizza invece
SavedStateRegistry
BundleSavedStateRegistryOwner
è stato rinominato inSavedStateRegistryOwner
Versione 1.0.0-alpha01
17 dicembre 2018
Questa è la prima release di SavedState
.
Nuove funzionalità
androidx.savedstate
è un nuovo insieme di API alpha che consentono agli sviluppatori di collegare componenti al processo di ripristino / salvataggio di InstanceState. Il punto di accesso principale dell'API è SavedStateRegistry<T>
, che fornisce un modo per recuperare lo stato salvato in precedenza tramite consumeRestoredStateForKey
e registrare un callback in registerSavedStateProvider
per fornire uno stato salvato quando il sistema lo richiede.