Speicherpunkt

Schreiben Sie einsteckbare Komponenten, die den UI-Status speichern, wenn ein Prozess beendet wird, und ihn wiederherstellen, wenn der Prozess neu gestartet wird.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
2. Juli 2025 1.3.1 - -

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von SavedState hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

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

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 1.3

Version 1.3.0

7. Mai 2025

androidx.savedstate:savedstate-*:1.3.0 wird veröffentlicht. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

  • LocalSavedStateRegistryOwner wurde von Compose UI in das neue Modul savedstate-compose verschoben, damit die Compose-basierten Hilfs-APIs außerhalb von Compose UI verwendet werden können. Diese Funktion sollte immer verwendet werden, wenn Sie Compose UI 1.9.0-alpha02 oder höher verwenden. Sie ist jedoch abwärtskompatibel und kann mit allen Versionen von Compose verwendet werden.
  • Die savedstate-ktx-Kotlin-Erweiterungen wurden in das Basismodul „savedstate“ verschoben.
  • SavedStateRegistryOwner-Instanzen, die über findViewTreeSavedStateRegistryOwner abgerufen werden, können jetzt über disjunkte übergeordnete Elemente einer Ansicht, z. B. eine ViewOverlay, aufgelöst werden. Weitere Informationen zu disjunkten Ansichtseltern finden Sie in den Versionshinweisen von core oder in der Dokumentation unter ViewTree.setViewTreeDisjointParent.

Kotlin Multiplatform

  • Das Modul SavedState ist jetzt mit KMP kompatibel. Zu den unterstützten Plattformen gehören jetzt Android, iOS, Linux, Mac und JVM-Desktopumgebungen.
  • Der undurchsichtige Typ SavedState wird als Abstraktion eingeführt, um eine einheitliche Möglichkeit zum Speichern und Wiederherstellen des Anwendungsstatus in KMP zu bieten. Sie enthält ein SavedStateReader und ein SavedStateWriter zum Ändern des zu speichernden Status. Unter Android ist SavedState ein Typalias für Bundle. Dadurch wird die binäre Kompatibilität gewährleistet und die Migration vorhandener APIs zu einem gemeinsamen Quellset erleichtert. Auf anderen Plattformen ist SavedState eine Map<String, Any>-Instanz.

      // 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")
      }
    

Unterstützung für KotlinX-Serialisierung

  • SavedState bietet jetzt Unterstützung für KotlinX Serialization. Sie können eine mit @Serializable annotierte Klasse mit den Methoden encodeToSavedState und decodeFromSavedState in ein SavedState umwandeln. Die zurückgegebene SavedState ist ein reguläres Bundle unter Android und kann von jeder API verwendet werden, die ein Bundle akzeptiert.

    @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)
    }
    
  • Die meisten Typen (z. B. primitive Typen) werden direkt unterstützt, ohne dass eine Konfiguration erforderlich ist. Zusätzliche Serializer, die mit @Serializable(with = ___:class)verwendet werden können, finden Sie im androidx.savedstate.serialization.serializers-Paket im savedstate-Modul und im androidx.savedstate.compose.serialization.serializers-Paket im savedstate-compose-Modul.

  • Außerdem haben wir saved, einen Lazy-Property-Delegate, eingefügt, um das Speichern von @Serializable-Klassen in einem SavedStateRegistryOwner zu vereinfachen (z.B. ComponentActivity, Fragment usw.) und diese Klassen automatisch nach dem Beenden und erneuten Erstellen des Prozesses wiederherstellen. Der saved-Delegate ist lazy und ruft die init-Lambda-Funktion erst auf oder speichert erst dann etwas in SavedStateRegistry, wenn darauf zugegriffen wird.

    @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 Lifecycle 2.9.0 wurde ein ähnlicher saved-Property-Delegate für SavedStateHandle hinzugefügt.

Version 1.3.0-rc01

23. April 2025

androidx.savedstate:savedstate-*:1.3.0-rc01 wird veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

Version 1.3.0-beta01

9. April 2025

androidx.savedstate:savedstate-*:1.3.0-beta01 wird veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.

Abhängigkeitsupdates

  • Diese Bibliothek ist jetzt auf das Kotlin 2.0-Sprachniveau ausgerichtet und erfordert KGP 2.0.0 oder höher. (Idb6b5)

Version 1.3.0-alpha11

26. März 2025

androidx.savedstate:savedstate-*:1.3.0-alpha11 wird ohne nennenswerte öffentliche Änderungen veröffentlicht. Version 1.3.0-alpha11 enthält diese Commits.

Version 1.3.0-alpha10

12. März 2025

androidx.savedstate:savedstate-*:1.3.0-alpha10 wird veröffentlicht. Version 1.3.0-alpha10 enthält diese Commits.

Neue Funktionen

  • Fügen Sie nicht reifizierte Methodenvarianten für get-Sammlungen in SavedStateReader hinzu. (I0b641, b/399820614)
  • Fügen Sie encodeDefaults zu SavedStateConfiguration hinzu, um anzupassen, ob Properties mit Standardwerten codiert werden sollen. (I893cc, b/395104517)
  • Fügen Sie SnapshotStateMapSerializer hinzu, um mutableStateMapOf zu unterstützen. (Ie6f19, b/378895074)
  • Fügen Sie SnapshotStateListSerializer hinzu, um mutableStateListOf zu unterstützen. (I4d888, b/378895074)
  • Fügen Sie getOrNull alternative Methoden für SavedStateReader.get-Varianten hinzu. Bei diesen Methoden werden primitive Werte automatisch in ein Objekt verpackt. (I6228c, b/399820614)

API-Änderungen

  • Entfernen Sie getOrElse aus SavedStateReader und verwenden Sie stattdessen getOrNull() ?: else(). (I87317, b/399820614)
  • Entfernen Sie den Modifikator inline aus den Methoden SavedStateReader und SavedStateWriter. (If2a02, b/399820614)
  • Entfernen der integrierten Android-spezifischen Serialisierungsprogramme für Listen und Arrays aus der öffentlichen API (Ida293)
  • Ersetzen Sie SparseParcelableArraySerializer durch SparseArraySerializer (I91de8).
  • Sorgen Sie dafür, dass sich alle SavedStateReader.get konsistent verhalten, indem Sie einen Fehler auslösen, wenn der Werttyp nicht mit dem Rückgabetyp übereinstimmt (I78c4a, b/399317598).
  • Benennen Sie SavedState*Delegates in SavedState*Delegate um. (I8589b, b/399629301)
  • Benennen Sie SavedStateConfig in SavedStateConfiguration um. (I043a5, b/399629301)

Version 1.3.0-alpha09

26. Februar 2025

androidx.savedstate:savedstate-*:1.3.0-alpha09 wird veröffentlicht. Version 1.3.0-alpha09 enthält diese Commits.

Neue Funktionen

  • Fügen Sie einen Fallback für integrierte Typen hinzu, damit alle von Bundle unterstützten Typen standardmäßig mit encodeAsSavedState/decodeFromSavedState oder für Attribute in @Serializable-Klassen über die Annotation @Contextual verwendet werden können. (Ic01d2)
  • Unterstützung für classDiscriminator und classDiscriminatorMode auf SavedStateConfig einbinden (I69b66, b/395104517)

API-Änderungen

  • SavedStateConfig-Parameter zu saved()-Delegaten hinzufügen (I39b3a)
  • Integrierte Serializer werden zu Singleton-Objekten (Ifeee4)
  • SavedStateConfig-Eigenschaften sind jetzt öffentlich, sodass andere Module diese Konfigurationen verwenden können. (Ie5f49, b/378897438)
  • Unterstützung von @Serializer(with = ...) für MutableStateFlowSerializer und MutableStateSerializer (I90953)
  • contentDeepToString zu SavedStateReader hinzufügen (I14d10)

Version 1.3.0-alpha08

12. Februar 2025

androidx.savedstate:savedstate-*:1.3.0-alpha08 wird veröffentlicht. Version 1.3.0-alpha08 enthält diese Commits.

Neue Funktionen

  • MutableStateSerializer wird von lifecycle-viewmodel-compose nach savedstate-compose verschoben, sodass Sie die SavedState Serialization APIs mit MutableState von Compose verwenden können. (I4f690, b/378895074)

API-Änderungen

  • Fügen Sie eine Factory-Funktion hinzu, um SavedState aus einem vorhandenen SavedState zu erstellen. (I39f9a)
  • Unterstützung für Array<SavedState> und List<SavedState> in androidx.savedstate hinzugefügt. (Idd8a5)
  • SavedStateConfig-Optional-Parameter für die Codierung/Decodierung von SavedState hinzugefügt (I6c4c0)

Version 1.3.0-alpha07

29. Januar 2025

androidx.savedstate:savedstate-*:1.3.0-alpha07 wird veröffentlicht. Version 1.3.0-alpha07 enthält diese Commits.

Neue Funktionen

  • MutableStateFlowSerializer zum Serialisieren von kotlinx.coroutines.flow.MutableStateFlow hinzugefügt. (I6a892, b/378895070)

API-Änderungen

  • Überladene SavedStateRegistryOwner.saved()-Delegatfunktionen durch Standardparameter ersetzen (Icd1c1)
  • JavaSerializableSerializer und ParcelableSerializer abstrahieren (I268f6)
  • Entfernen Sie die generische T : CharSequence aus CharSequenceSerializer (Ib40bd).

Version 1.3.0-alpha06

11. Dezember 2024

androidx.savedstate:savedstate-*:1.3.0-alpha06 wird veröffentlicht. Version 1.3.0-alpha06 enthält diese Commits.

Neue Funktionen

  • SavedState KMP unterstützt jetzt: IBinder, Size, SizeF, Array<Parcelable>, SparseArray<Parcelable> und Serializable (Android). (I1ba94, b/334076622)
  • Fügen Sie KSerializer-Instanzen hinzu, die zum Codieren/Decodieren von Java- und Android-Typen verwendet werden können, die von „Bundle“ unterstützt werden. Markieren Sie dazu das entsprechende Feld in Ihrer Klasse mit @Serializable(with = ParcelableSerializer::class). (I8c10f, I28caf, b/376026712)
  • SavedStateRegistryOwner-Instanzen, die über findViewTreeSavedStateRegistryOwner abgerufen werden, können jetzt über disjunkte übergeordnete Elemente einer Ansicht, z. B. eine ViewOverlay, aufgelöst werden. Weitere Informationen zu disjunkten Ansichtseltern finden Sie in den Versionshinweisen von core oder in der Dokumentation unter ViewTree.setViewTreeDisjointParent. (Iccb33)

API-Änderungen

  • Die Benennung und Paketorganisation müssen konsistenter mit SavedStateRegistryOwnerDelegate sein (I8c135, b/376026744).

Version 1.3.0-alpha05

13. November 2024

androidx.savedstate:savedstate-*:1.3.0-alpha05 wird veröffentlicht. Version 1.3.0-alpha05 enthält diese Commits.

Unterstützung für KotlinX-Serialisierung

  • SavedState bietet jetzt Unterstützung für KotlinX Serialization. Sie können eine mit @Serializable annotierte Klasse mit den Methoden encodeToSavedState und decodeFromSavedState in ein SavedState umwandeln. Die zurückgegebene SavedState ist ein reguläres Bundle unter Android und kann von jeder API verwendet werden, die ein Bundle akzeptiert. (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)
    }
    
  • Außerdem haben wir saved, einen Lazy-Property-Delegate, eingefügt, um das Speichern von @Serializable-Klassen in einem SavedStateRegistryOwner zu vereinfachen (z.B. ComponentActivity, Fragment usw.) und diese Klassen automatisch nach dem Beenden und erneuten Erstellen des Prozesses wiederherstellen. Der saved-Delegate ist lazy und ruft die init-Lambda-Funktion erst auf oder speichert erst dann etwas in SavedStateRegistry, wenn darauf zugegriffen wird. (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 Lifecycle 2.9.0-alpha07 wurde ein ähnlicher saved-Property-Delegate für SavedStateHandle hinzugefügt.

API-Änderungen

  • toMap wurde zu SavedState hinzugefügt, sodass jedes SavedState in ein reguläres Map (flache Kopie) konvertiert werden kann. (I487b9, b/334076622)
  • SavedState KMP unterstützt jetzt Arrays. (Ic0552, b/334076622)

Version 1.3.0-alpha04

30. Oktober 2024

androidx.savedstate:savedstate-*:1.3.0-alpha04 wird veröffentlicht. Version 1.3.0-alpha04 enthält diese Commits.

API-Änderungen

Version 1.3.0-alpha03

16. Oktober 2024

androidx.savedstate:savedstate-*:1.3.0-alpha03 wird ohne nennenswerte Änderungen veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.

Version 1.3.0-alpha02

2. Oktober 2024

androidx.savedstate:savedstate-*:1.3.0-alpha02 wird veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.

Kotlin Multiplatform

  • Das Modul SavedState ist jetzt mit KMP kompatibel. Zu den unterstützten Plattformen gehören jetzt Android, iOS, Linux, Mac und JVM-Desktopumgebungen. (I26305, b/334076622)

Neue Funktionen

  • Der undurchsichtige Typ SavedState wird als Abstraktion eingeführt, um eine einheitliche Möglichkeit zum Speichern und Wiederherstellen des Anwendungsstatus in KMP zu bieten. Sie enthält ein SavedStateReader und ein SavedStateWriter zum Ändern des zu speichernden Status. Unter Android ist SavedState ein Typalias für Bundle. Dadurch wird die binäre Kompatibilität gewährleistet und die Migration vorhandener APIs zu einem gemeinsamen Quellset erleichtert. Auf anderen Plattformen ist SavedState eine Map<String, Any>-Instanz. (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")
  }

API-Änderungen

  • SavedStateRegistry und SavedStateRegistryController sind jetzt mit KMP kompatibel. (Id7bb8, b/334076622)
  • SavedState, SavedStateWriter und SavedStateReader sind jetzt KMP-kompatibel. (I26305, b/334076622)

Version 1.3.0-alpha01

7. August 2024

androidx.savedstate:savedstate:1.3.0-alpha01 und androidx.savedstate:savedstate-ktx:1.3.0-alpha01 werden veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

API-Änderungen

  • Die savedstate-ktx-Kotlin-Erweiterungen wurden in das Basismodul „savedstate“ verschoben. (I1cc18, b/274803094)

Note

  • compileSdk auf Version 35 (5dc41be) aktualisieren

Version 1.2.1

Version 1.2.1

22. März 2023

androidx.savedstate:savedstate:1.2.1 und androidx.savedstate:savedstate-ktx:1.2.1 werden veröffentlicht. Version 1.2.1 enthält diese Commits.

Abhängigkeitsupdates

Version 1.2.0

Version 1.2.0

29. Juni 2022

androidx.savedstate:savedstate:1.2.0 und androidx.savedstate:savedstate-ktx:1.2.0 werden veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • SavedStateRegistryController ermöglicht jetzt das vorzeitige Anhängen von SavedStateRegistry über performAttach().
  • Sie können jetzt eine zuvor registrierte SavedStateProvider über getSavedStateProvider() von einem SavedStateRegistry abrufen.
  • Die SavedState-Bibliothek wurde in Kotlin neu geschrieben.
    • Für SavedStateRegistryOwner ist dies eine quelleninkompatible Änderung für die in Kotlin geschriebenen Klassen. Sie müssen jetzt die Property savedStateRegistry überschreiben, anstatt die vorherige Funktion getSavedStateRegistry() zu implementieren.
    • Für ViewTreeSavedStateRegistryOwner ist dies eine quelleninkompatible Änderung für die in Kotlin geschriebenen Klassen. Sie müssen jetzt die Kotlin-Erweiterungsmethoden für View von androidx.savedstate.setViewTreeSavedStateRegistryOwner und androidx.savedstate.findViewTreeSavedStateRegistryOwner direkt importieren und verwenden, um einen zuvor festgelegten Inhaber festzulegen und zu finden. Sie ersetzt die savedstate-ktx API von findViewTreeSavedStateRegistryOwner.

Geändertes Verhalten

  • SavedStateRegistry speichert kein leeres Bundle mehr, wenn kein Status gespeichert werden muss.

Version 1.2.0-rc01

11. Mai 2022

androidx.savedstate:savedstate:1.2.0-rc01 und androidx.savedstate:savedstate-ktx:1.2.0-rc01 werden veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

Änderungen an der Dokumentation

  • Die SavedStateRegistryOwner-Kdocs wurden aktualisiert, um die Verantwortlichkeiten und den Vertrag des Inhabers in Bezug auf die Implementierung der Schnittstelle oder den Aufruf der Methoden für SavedStateRegistryController zu verdeutlichen. (Iefc95, b/228887344)

Version 1.2.0-beta01

20. April 2022

androidx.savedstate:savedstate:1.2.0-beta01 und androidx.savedstate:savedstate-ktx:1.2.0-beta01 werden veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

API-Änderungen

  • Die Klassen SavedStateRegistry und ViewTreeSavedStateRegistryOwner wurden in Kotlin neu geschrieben. Für ViewTreeSavedStateRegistryOwner ist dies eine quelleninkompatible Änderung für die in Kotlin geschriebenen Klassen. Sie müssen jetzt die Kotlin-Erweiterungsmethoden für View von androidx.savedstate.setViewTreeSavedStateRegistryOwner und androidx.savedstate.findViewTreeSavedStateRegistryOwner direkt importieren und verwenden, um einen zuvor festgelegten Inhaber festzulegen und zu finden. Sie ersetzt die savedstate-ktx API von findViewTreeSavedStateRegistryOwner. Dies ist binärkompatibel und bleibt für Implementierungen, die in der Programmiersprache Java geschrieben wurden, quellkompatibel. (b/220191285)

Version 1.2.0-alpha02

6. April 2022

androidx.savedstate:savedstate:1.2.0-alpha02 und androidx.savedstate:savedstate-ktx:1.2.0-alpha02 werden veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Sie können jetzt eine zuvor registrierte SavedStateProvider über getSavedStateProvider() von einem SavedStateRegistry abrufen. (I7ea47, b/215406268)

API-Änderungen

  • Die Klassen SavedStateRegistryOwner, SavedStateRegistryController und Recreator wurden in Kotlin neu geschrieben. Für SavedStateRegistryOwner ist dies eine quelleninkompatible Änderung für die in Kotlin geschriebenen Klassen. Sie müssen jetzt die Property savedStateRegistry überschreiben, anstatt die vorherige Funktion getSavedStateRegistry() zu implementieren. Dies ist binärkompatibel und quellcodekompatibel für Implementierungen, die in der Programmiersprache Java geschrieben wurden. (b/220191285)

Version 1.2.0-alpha01

26. Januar 2022

androidx.savedstate:savedstate:1.2.0-alpha01 und androidx.savedstate:savedstate-ktx:1.2.0-alpha01 werden veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • SavedStateRegistryController ermöglicht jetzt das frühe Anhängen von SavedStateRegistry über performAttach(). (Ice4bf)

Geändertes Verhalten

  • SavedStateRegistry speichert kein leeres Bundle mehr, wenn kein Status gespeichert werden muss. (aosp/1896865, b/203457956)

Version 1.1.0

Version 1.1.0

10. Februar 2021

androidx.savedstate:savedstate:1.1.0 und androidx.savedstate:savedstate-ktx:1.1.0 werden veröffentlicht. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

  • ViewTreeSavedStateRegistryOwner API: Mit einer neuen ViewTreeSavedStateRegistryOwner.get(View) API können Sie die enthaltende SavedStateRegistry für eine View-Instanz abrufen. Sie müssen auf Activity 1.2.0, Fragment 1.3.0 und AppCompat 1.3.0-alpha01 oder höher aktualisieren, damit die Daten korrekt ausgegeben werden.
  • savedstate-ktx-Artefakt: Das neue savedstate-ktx-Artefakt wurde mit einer findViewTreeSavedStateRegistryOwner()-Kotlin-Erweiterung für die Arbeit mit ViewTreeSavedStateRegistryOwner hinzugefügt.

Version 1.1.0-rc01

16. Dezember 2020

androidx.savedstate:savedstate:1.1.0-rc01 und androidx.savedstate:savedstate-ktx:1.1.0-rc01 werden ohne Änderungen seit 1.1.0-beta01 veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Version 1.1.0-beta01

1. Oktober 2020

androidx.savedstate:savedstate:1.1.0-beta01 und androidx.savedstate:savedstate-ktx:1.1.0-beta01 werden ohne Änderungen seit 1.1.0-alpha01 veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

Version 1.1.0-alpha01

20. Mai 2020

androidx.savedstate:savedstate:1.1.0-alpha01 und androidx.savedstate:savedstate-ktx:1.1.0-alpha01 werden veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Mit einer neuen ViewTreeSavedStateRegistryOwner.get(View)-API können Sie das enthaltende SavedStateRegistry für eine View-Instanz abrufen. Sie müssen auf Activity 1.2.0-alpha05, Fragment 1.3.0-alpha05 und AppCompat 1.3.0-alpha01 aktualisieren, damit die Daten korrekt ausgegeben werden. (aosp/1298679)
  • Das neue savedstate-ktx-Artefakt wurde mit einer findViewTreeSavedStateRegistryOwner()-Kotlin-Erweiterung für die Arbeit mit ViewTreeSavedStateRegistryOwner hinzugefügt. (aosp/1299434)

Version 1.0.0

Version 1.0.0

5. September 2019

androidx.savedstate:savedstate:1.0.0 wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Wichtige Funktionen von SavedState 1.0.0

androidx.savedstate ist jetzt eine stabile Version. Dies ist eine Reihe von APIs, mit denen Entwickler Komponenten in den Prozess „restore / saveInstanceState“ einfügen können. Der Haupteinstiegspunkt der API ist SavedStateRegistry. Damit können Sie zuvor gespeicherte Zustände mit consumeRestoredStateForKey abrufen und einen Callback für registerSavedStateProvider registrieren, um einen gespeicherten Zustand bereitzustellen, sobald das System ihn anfordert.

Version 1.0.0-rc01

2. Juli 2019

androidx.savedstate:savedstate:1.0.0-rc01 wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Fehlerkorrekturen

Version 1.0.0-beta01

7. Mai 2019

androidx.savedstate:savedstate:1.0.0-beta01 wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Version 1.0.0-alpha02

13. März 2019

androidx.savedstate:savedstate:1.0.0-alpha02 wird veröffentlicht. androidx.savedstate:savedstate kombiniert die Artefakte androidx.savedstate:savedstate-bundle und androidx.savedstate:savedstate-common in einem Artefakt, da die Infrastruktur für den gespeicherten Status vereinfacht und Generics aus SavedStateRegistry entfernt werden sollen. Daher sind keine separaten Module erforderlich.

Eine vollständige Liste der in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ) wurde hinzugefügt. Die angegebene Klasse wird instanziiert und die Methode AutoRecreated.onRecreated wird ausgeführt, wenn die zugehörige Komponente neu gestartet wird.

API-Änderungen

  • Generika aus SavedStateRegistry<T> entfernt
  • „AbstractSavedStateRegistry“ und „BundlableSavedStateRegistry“ wurden entfernt. Verwenden Sie stattdessen SavedStateRegistry.
  • BundleSavedStateRegistryOwner wird in SavedStateRegistryOwner umbenannt

Version 1.0.0-alpha01

17. Dezember 2018

Dies ist die erste Version von SavedState.

Neue Funktionen

androidx.savedstate ist eine neue Reihe von Alpha-APIs, mit denen Entwickler Komponenten in den Prozess zum Wiederherstellen / Speichern des Instanzstatus einfügen können. Der Haupteinstiegspunkt der API ist SavedStateRegistry<T>. Damit können Sie den zuvor gespeicherten Status über consumeRestoredStateForKey abrufen und einen Callback für registerSavedStateProvider registrieren, um einen gespeicherten Status bereitzustellen, sobald das System ihn anfordert.