Savedstate

Scrivi componenti plug-in che salvano lo stato dell'interfaccia utente quando un processo termina e lo ripristinano al riavvio del processo.
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.

Creare un nuovo problema

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 modulo savedstate-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 UI 1.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 tramite findViewTreeSavedStateRegistryOwner ora possono essere risolte tramite genitori disgiunti di una vista, ad esempio un ViewOverlay. Per ulteriori informazioni sui genitori della visualizzazione disgiunta, consulta le note di rilascio di core o la documentazione in ViewTree.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. Include SavedStateReader e SavedStateWriter per modificare lo stato da salvare. Su Android, SavedState è un alias di tipo per Bundle, che garantisce la compatibilità binaria e facilita la migrazione delle API esistenti a un insieme di origini comune. Su altre piattaforme, SavedState è un'istanza Map<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 un SavedState utilizzando i metodi encodeToSavedState e decodeFromSavedState. Il SavedState restituito è un normale Bundle su Android e può essere utilizzato da qualsiasi API che accetta un Bundle.

    @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 pacchetto androidx.savedstate.serialization.serializers nel modulo savedstate e nel pacchetto androidx.savedstate.compose.serialization.serializers nel modulo savedstate-compose.

  • Abbiamo incluso anche saved, un delegato di proprietà pigro, per semplificare l'archiviazione delle classi @Serializable in un SavedStateRegistryOwner (ad es. ComponentActivity, Fragment e così via) e ripristinarle automaticamente in caso di interruzione e ricreazione del processo. Tieni presente che il delegato saved è pigro e non chiamerà la lambda init né salverà nulla in SavedStateRegistry 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 per SavedStateHandle.

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 in SavedStateReader. (I0b641, b/399820614)
  • Aggiungi encodeDefaults a SavedStateConfiguration, consentendo di personalizzare se le proprietà con valori predefiniti devono essere codificate. (I893cc, b/395104517)
  • Aggiungi SnapshotStateMapSerializer per supportare mutableStateMapOf. (Ie6f19, b/378895074)
  • Aggiungi SnapshotStateListSerializer per supportare mutableStateListOf. (I4d888, b/378895074)
  • Aggiungi getOrNull metodi alternativi per le varianti SavedStateReader.get. Questi metodi eseguono il boxing automatico dei valori primitivi. (I6228c, b/399820614)

Modifiche alle API

  • Rimuovi getOrElse da SavedStateReader a favore di getOrNull() ?: else(). (I87317, b/399820614)
  • Rimuovi il modificatore inline dai metodi SavedStateReader e SavedStateWriter. (If2a02, b/399820614)
  • Rimozione dei serializzatori di elenchi e array specifici per Android integrati dall'API pubblica (Ida293)
  • Sostituisci SparseParcelableArraySerializer con SparseArraySerializer (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 in SavedState*Delegate. (I8589b, b/399629301)
  • Rinomina SavedStateConfig in SavedStateConfiguration. (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 con encodeAsSavedState/decodeFromSavedState per impostazione predefinita o, per le proprietà nelle classi @Serializable, tramite l'annotazione @Contextual. (Ic01d2)
  • Includi il supporto per classDiscriminator e classDiscriminatorMode su SavedStateConfig. (I69b66, b/395104517)

Modifiche alle API

  • Aggiungi il parametro SavedStateConfig ai delegati di saved() (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 = ...) per MutableStateFlowSerializer e MutableStateSerializer (I90953)
  • Aggiungi contentDeepToString a SavedStateReader (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 in savedstate-compose da lifecycle-viewmodel-compose, consentendoti di utilizzare le API di serializzazione SavedState con MutableState di Compose. (I4f690, b/378895074)

Modifiche alle API

  • Aggiungi una funzione di fabbrica per creare SavedState da un SavedState esistente. (I39f9a)
  • Aggiunge il supporto per Array<SavedState> e List<SavedState> in androidx.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 di kotlinx.coroutines.flow.MutableStateFlow. (I6a892, b/378895070)

Modifiche alle API

  • Sostituisci le funzioni delegate SavedStateRegistryOwner.saved() sovraccariche con i parametri predefiniti (Icd1c1)
  • Rendi JavaSerializableSerializer e ParcelableSerializer astratti (I268f6)
  • Rimuovi T : CharSequence generico da CharSequenceSerializer (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 tramite findViewTreeSavedStateRegistryOwner ora possono essere risolte tramite genitori disgiunti di una vista, ad esempio un ViewOverlay. Per ulteriori informazioni sui genitori della visualizzazione disgiunta, consulta le note di rilascio di core o la documentazione in ViewTree.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 un SavedState utilizzando i metodi encodeToSavedState e decodeFromSavedState. Il SavedState restituito è un normale Bundle su Android e può essere utilizzato da qualsiasi API che accetta un Bundle. (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 un SavedStateRegistryOwner (ad es. ComponentActivity, Fragment e così via) e ripristinarle automaticamente in caso di interruzione e ricreazione del processo. Tieni presente che il delegato saved è pigro e non chiamerà la lambda init né salverà nulla in SavedStateRegistry 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 per SavedStateHandle.

Modifiche alle API

  • Aggiungi toMap a SavedState, consentendo la conversione di qualsiasi SavedState in un Map 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

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. Include SavedStateReader e SavedStateWriter per modificare lo stato da salvare. Su Android, SavedState è un alias di tipo per Bundle, che garantisce la compatibilità binaria e facilita la migrazione delle API esistenti a un insieme di origini comune. Su altre piattaforme, SavedState è un'istanza Map<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 e SavedStateRegistryController ora sono compatibili con KMP. (Id7bb8, b/334076622)
  • SavedState, SavedStateWriter e SavedStateReader 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

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 di SavedStateRegistry tramite performAttach().
  • Ora puoi recuperare un SavedStateProvider registrato in precedenza da un SavedStateRegistry tramite getSavedStateProvider().
  • 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 funzione getSavedStateRegistry() 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 su View di androidx.savedstate.setViewTreeSavedStateRegistryOwner e androidx.savedstate.findViewTreeSavedStateRegistryOwner per impostare e trovare un proprietario impostato in precedenza. Questa sostituisce l'API savedstate-ktx di findViewTreeSavedStateRegistryOwner.

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 su SavedStateRegistryController. (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 e ViewTreeSavedStateRegistryOwner sono state riscritte in Kotlin. 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 su View di androidx.savedstate.setViewTreeSavedStateRegistryOwner e androidx.savedstate.findViewTreeSavedStateRegistryOwner per impostare e trovare un proprietario impostato in precedenza. Questa sostituisce l'API savedstate-ktx di findViewTreeSavedStateRegistryOwner. È 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 un SavedStateRegistry tramite getSavedStateProvider(). (I7ea47, b/215406268)

Modifiche alle API

  • Le classi SavedStateRegistryOwner, SavedStateRegistryController e Recreator sono state riscritte 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 funzione getSavedStateRegistry() 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 di SavedStateRegistry tramite performAttach(). (Ice4bf)

Modifiche al comportamento

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 API ViewTreeSavedStateRegistryOwner.get(View) consente di recuperare l'SavedStateRegistry contenitore dato un'istanza View. Per compilare correttamente questo campo, devi eseguire l'upgrade ad Activity 1.2.0, Fragment 1.3.0 e AppCompat 1.3.0-alpha01 o versioni successive.
  • savedstate-ktxartefatto: è stato aggiunto il nuovo artefatto savedstate-ktx con un'estensione findViewTreeSavedStateRegistryOwner() Kotlin per l'utilizzo di ViewTreeSavedStateRegistryOwner.

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 il SavedStateRegistry contenitore dato un'istanza View. Per compilare correttamente questo campo, devi eseguire l'upgrade ad Activity 1.2.0-alpha05, Fragment 1.3.0-alpha05 e AppCompat 1.3.0-alpha01. (aosp/1298679)
  • Il nuovo artefatto savedstate-ktx è stato aggiunto con un'estensione Kotlin per l'utilizzo di ViewTreeSavedStateRegistryOwner.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 metodo AutoRecreated.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 in SavedStateRegistryOwner

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.