Gespeicherter Status

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 Release Releasekandidat Beta-Release Alpha-Release
23. September 2026 1.5.0 - - 1.6.0-alpha04

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 unter Google-Repository bei Maven.

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

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.savedstate:savedstate:1.5.0"

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

Kotlin

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

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

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

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.6

Version 1.6.0-alpha04

23. September 2026

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

Fehlerkorrekturen

  • Die androidx.lifecycle:lifecycle-runtime-Abhängigkeit wurde auf 2.10.0 aktualisiert. Diese Version ist erforderlich, damit gebündelte Lint-Prüfungen für den Lebenszyklus mit AGP-Version 9.5.0-alpha04 oder höher ausgeführt werden können. (I99bfd, b/556807521)

Version 1.6.0-alpha03

9. September 2026

androidx.savedstate:savedstate-*:1.6.0-alpha03 ist veröffentlicht. Version 1.6.0-alpha03 enthält diese Commits.

API-Änderungen

  • Der Null-Anfangszustand ist im SavedStateRegistry-Konstruktor zulässig. (I76006)

Version 1.6.0-alpha02

26. August 2026

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

API-Änderungen

  • Öffentliche Konstruktoren für SavedStateRegistry hinzugefügt und SavedStateRegistry so geändert, dass SavedStateProvider und SavedStateRestorer implementiert werden. (I3c696)
  • SavedStateProvider-Schnittstelle auf oberster Ebene hinzugefügt. (I20f9d)
  • Die SavedStateRestorer-Schnittstelle der obersten Ebene mit restoreState(savedState: SavedState?) wurde hinzugefügt und die nicht veröffentlichte SavedStateRegistry.SavedStateConsumer wurde entfernt. (Idc01d)
  • AutoRecreated und runOnNextRecreation wurden zugunsten von SavedStateProvider und SavedStateRestorer eingestellt. (Iadc00)
  • Einführung der SavedStateConsumer-Schnittstelle auf SavedStateRegistry. Ermöglicht es registrierten Anbietern, den wiederhergestellten Status automatisch während der Wiederherstellung oder sofort nach der Registrierung zu empfangen und zu nutzen, wenn der Status bereits wiederhergestellt wurde. (I9a378)

Version 1.6.0-alpha01

12. August 2026

androidx.savedstate:savedstate-*:1.6.0-alpha01 ist veröffentlicht. Version 1.6.0-alpha01 enthält diese Commits.

Fehlerkorrekturen

  • Für die Verwendung von LocalSavedStateRegistryOwner ist Compose UI 1.8.0 oder höher erforderlich. Dadurch werden interne Reflection-Fallbacks entfernt, was die Leistung verbessert, aber ein striktes Abhängigkeits-Upgrade für Clients erfordert. (I16fb0)

Version 1.5

Version 1.5.0

19. Mai 2026

androidx.savedstate:savedstate-*:1.5.0 ist veröffentlicht. Version 1.5.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.4.0:

  • Aktivieren Sie die generische Serialisierung für SavedState-Objekte, damit sie plattformübergreifend mit Standardformaten wie CBOR oder JSON codiert und decodiert werden können. (Iafda4, b/425919375)
  • Fügen Sie putKotlinSerializable- und getKotlinSerializable-Erweiterungsfunktionen zu SavedStateWriter und SavedStateReader hinzu, um das direkte Speichern und Abrufen von serialisierbaren Kotlin-Objekten mithilfe von Schlüsseln zu ermöglichen und die Integration mit SavedState-APIs zu optimieren. (Iba02e)
  • Es wurden Factory-Funktionen für LifecycleOwner, ViewModelStoreOwner und SavedStateRegistryOwner hinzugefügt, um den Boilerplate-Code beim Erstellen benutzerdefinierter Owner-Komponenten zu reduzieren. (I9682c)
  • Das Speichern und Wiederherstellen von SnapshotStateSet (erstellt über mutableStateSetOf()) mit rememberSerializable aktivieren. Sie können SnapshotStateSet jetzt in rememberSerializable verwenden, ohne dass ein benutzerdefinierter Bildschirmschoner erforderlich ist. (I9a4ed, b/449498367)

Version 1.5.0-rc01

6. Mai 2026

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

Version 1.5.0-beta01

22. April 2026

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

Version 1.5.0-alpha02

25. März 2026

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

Version 1.5.0-alpha01

11. März 2026

androidx.savedstate:savedstate-*:1.5.0-alpha01 ist veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Aktiviert die generische Serialisierung für SavedState-Objekte, sodass sie plattformübergreifend mit Standardformaten wie CBOR oder JSON codiert und decodiert werden können. (Iafda4, b/425919375)

API-Änderungen

  • Fügen Sie den Klassen SavedStateWriter und SavedStateReader die Erweiterungsfunktionen putKotlinSerializable und getKotlinSerializable hinzu, damit Kotlin-Objekte vom Typ „Serializable“ direkt mithilfe von Schlüsseln gespeichert und abgerufen werden können. Dadurch wird die Integration mit SavedState-APIs vereinfacht. (Iba02e)
  • Es wurden Factory-Funktionen für LifecycleOwner, ViewModelStoreOwner und SavedStateRegistryOwner hinzugefügt, um den Boilerplate-Code beim Erstellen benutzerdefinierter Owner-Komponenten zu reduzieren. (I9682c)
  • Speichern und Wiederherstellen von SnapshotStateSet (erstellt über mutableStateSetOf()) mit rememberSerializable aktivieren. Sie können SnapshotStateSet jetzt in rememberSerializable verwenden, ohne einen benutzerdefinierten Saver zu benötigen. (I9a4ed, b/449498367)

Version 1.4

Version 1.4.0

5. November 2025

androidx.savedstate:savedstate-*:1.4.0 ist veröffentlicht. Version 1.4.0 enthält diese Commits.

Version 1.4.0-rc01

22. Oktober 2025

androidx.savedstate:savedstate-*:1.4.0-rc01 wurde ohne Änderungen seit Version 1.4.0-beta01 veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.

Version 1.4.0-beta01

8. Oktober 2025

androidx.savedstate:savedstate-*:1.4.0-beta01 wird ohne nennenswerte Änderungen seit der letzten Alphaversion veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

Version 1.4.0-alpha03

27. August 2025

androidx.savedstate:savedstate-*:1.4.0-alpha03 ist veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.

API-Änderungen

  • Unterstützung für Nullable-Typen in encodeToSavedState und decodeFromSavedState hinzugefügt. (I79062, b/439527454)
  • Aktualisieren Sie Compose auf Version 1.9.0. (I2b9de)

Version 1.4.0-alpha02

13. August 2025

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

Version 1.4.0-alpha01

30. Juli 2025

androidx.savedstate:savedstate-*:1.4.0-alpha01 ist veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.

API-Änderungen

  • Native Unterstützung für Nullable-Typen in SavedStateRegistryOwner.saved hinzugefügt, wodurch das Speichern und Wiederherstellen von Nullable-Attributen vereinfacht wird. (Ia632, b/421325690)

Version 1.3

Version 1.3.3

17. September 2025

androidx.savedstate:savedstate-*:1.3.3 ist veröffentlicht. Version 1.3.3 enthält diese Commits.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, durch den das Compose Compiler-Plug-in nicht angewendet wurde. Dadurch waren SavedState-KMP-Artefakte fehlerhaft. (Id2290, b/443965665)

Version 1.3.2

27. August 2025

androidx.savedstate:savedstate-*:1.3.2 ist veröffentlicht. Version 1.3.2 enthält diese Commits.

Neue Funktionen

  • Dem SavedState-*-compose-Artefakt wurden neue Kotlin Multiplatform-Ziele (KMP) hinzugefügt. Lifecycle unterstützt jetzt insgesamt die folgenden Plattformen: JVM (Android und Desktop), Native (Linux, iOS, watchOS, macOS, MinGW) und Web (JavaScript, WasmJS). (/Idcf26)

Version 1.3.1

16. Juli 2025

androidx.savedstate:savedstate-*:1.3.1 ist veröffentlicht. Version 1.3.1 enthält diese Commits.

Fehlerkorrekturen

  • Fügt allen KMP-Zielen, die von Annotationen unterstützt werden, SavedState-Artefakte hinzu.
  • Den SavedState-Artefakten wurden neue Kotlin Multiplatform-Ziele (KMP) hinzugefügt. SavedState unterstützt jetzt insgesamt die folgenden Plattformen: JVM (Android und Desktop), Native (Linux, iOS, watchOS, macOS, MinGW) und Web (JavaScript, WasmJS). Den *-compose-Artefakten wurden keine neuen KMP-Ziele hinzugefügt, da dies vom stabilen Release von Compose 1.9 abhängt. (I062f4).

Version 1.3.0

7. Mai 2025

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

Wichtige Änderungen seit Version 1.2.0

  • LocalSavedStateRegistryOwner wurde von der Compose-UI in das neue Modul savedstate-compose verschoben, damit die Compose-basierten Helper-APIs außerhalb der 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 jetzt in das Basismodul „savedstate“ verschoben.
  • SavedStateRegistryOwner-Instanzen, die über findViewTreeSavedStateRegistryOwner abgerufen werden, können jetzt über disjunkte übergeordnete Elemente einer Ansicht, z. B. ein ViewOverlay, aufgelöst werden. Weitere Informationen zu disjunkten Ansichtseltern finden Sie in den Versionshinweisen von Core oder in der Dokumentation in ViewTree.setViewTreeDisjointParent.

Kotlin Multiplatform

  • Das Modul SavedState ist jetzt KMP-kompatibel. Zu den unterstützten Plattformen gehören jetzt Android, iOS, Linux, Mac und JVM-Desktopumgebungen.
  • Einführung des undurchsichtigen Typs SavedState als Abstraktion, um eine einheitliche Möglichkeit zum Speichern und Wiederherstellen des Anwendungsstatus in KMP zu bieten. Sie enthält SavedStateReader und 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 Source-Set 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-Delegaten, eingefügt, um das Speichern von @Serializable-Klassen in einem SavedStateRegistryOwner (z.B. ComponentActivity, Fragment usw.) zu vereinfachen und diese Klassen automatisch nach dem Beenden und erneuten Erstellen des Prozesses wiederherstellen zu lassen. Der saved-Delegat ist lazy und ruft die init-Lambda-Funktion erst auf oder speichert 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 ist veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

Version 1.3.0-beta01

09. April 2025

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

Abhängigkeitsupdates

  • Diese Bibliothek ist jetzt auf das Sprachniveau von Kotlin 2.0 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 ist 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)
  • encodeDefaults zu SavedStateConfiguration hinzufügen, um anzupassen, ob Attribute 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

  • Entferne getOrElse aus SavedStateReader und ersetze es durch 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)
  • SparseParcelableArraySerializer durch SparseArraySerializer ersetzen (I91de8)
  • Alle SavedStateReader.get-Elemente verhalten sich einheitlich, indem ein Fehler ausgegeben wird, wenn der Werttyp nicht mit dem Rückgabetyp übereinstimmt (I78c4a, b/399317598)
  • Benenne SavedState*Delegates in SavedState*Delegate um. (I8589b, b/399629301)
  • Benenne SavedStateConfig in SavedStateConfiguration um. (I043a5, b/399629301)

Version 1.3.0-alpha09

26. Februar 2025

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

Neue Funktionen

  • Es wurde ein Fallback für integrierte Typen hinzugefügt, damit alle von Bundle unterstützten Typen standardmäßig mit encodeAsSavedState/decodeFromSavedState oder für Properties in @Serializable-Klassen über die Annotation @Contextual verwendet werden können. (Ic01d2)
  • Unterstützung für classDiscriminator und classDiscriminatorMode auf SavedStateConfig (I69b66, b/395104517)

API-Änderungen

  • Parameter SavedStateConfig zu saved()-Delegaten hinzufügen (I39b3a)
  • Integrierte Serialisierungsprogramme 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 ist 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)
  • Optionalen Parameter SavedStateConfig zur Codierung/Decodierung von SavedState hinzufügen (I6c4c0)

Version 1.3.0-alpha07

29. Januar 2025

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

Neue Funktionen

  • Fügen Sie MutableStateFlowSerializer für die Serialisierung von kotlinx.coroutines.flow.MutableStateFlow hinzu. (I6a892, b/378895070)

API-Änderungen

  • Überladene SavedStateRegistryOwner.saved()-Delegatfunktionen durch Standardparameter ersetzen (Icd1c1)
  • JavaSerializableSerializer und ParcelableSerializer abstrakt machen (I268f6)
  • Entferne den generischen T : CharSequence aus CharSequenceSerializer (Ib40bd)

Version 1.3.0-alpha06

11. Dezember 2024

androidx.savedstate:savedstate-*:1.3.0-alpha06 ist 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. ein ViewOverlay, aufgelöst werden. Weitere Informationen zu disjunkten Ansichtseltern finden Sie in den Versionshinweisen von Core oder in der Dokumentation in ViewTree.setViewTreeDisjointParent. (Iccb33)

API-Änderungen

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

Version 1.3.0-alpha05

13. November 2024

androidx.savedstate:savedstate-*:1.3.0-alpha05 ist 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-Delegaten, eingefügt, um das Speichern von @Serializable-Klassen in einem SavedStateRegistryOwner (z.B. ComponentActivity, Fragment usw.) zu vereinfachen und diese Klassen automatisch nach dem Beenden und erneuten Erstellen des Prozesses wiederherstellen zu lassen. Der saved-Delegat ist lazy und ruft die init-Lambda-Funktion erst auf oder speichert 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

  • Fügen Sie toMap zu SavedState hinzu, damit alle SavedState in ein reguläres Map (flache Kopie) konvertiert werden können. (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 ist 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 ist veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.

Kotlin Multiplatform

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

Neue Funktionen

  • Einführung des undurchsichtigen Typs SavedState als Abstraktion, um eine einheitliche Möglichkeit zum Speichern und Wiederherstellen des Anwendungsstatus in KMP zu bieten. Sie enthält SavedStateReader und 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 Source-Set 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 sind veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

API-Änderungen

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

Hinweis

  • Update von compileSdk auf 35 (5dc41be)

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 sind 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 sind veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Mit SavedStateRegistryController kann die SavedStateRegistry jetzt über performAttach() frühzeitig angehängt werden.
  • Sie können jetzt eine zuvor registrierte SavedStateProvider über getSavedStateProvider() aus einer 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 sind 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 sind 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 sind veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Sie können jetzt eine zuvor registrierte SavedStateProvider über getSavedStateProvider() aus 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 sind veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Mit SavedStateRegistryController kann die SavedStateRegistry jetzt über performAttach() frühzeitig angehängt werden. (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 sind 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 erfasst 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 seit dem 1.1.0-beta01 ohne Änderungen 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 seit dem 1.1.0-alpha01 ohne Änderungen 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 sind veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Mit der 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 diese Daten korrekt ausgefüllt 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 ist veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Wichtige Funktionen von SavedState 1.0.0

androidx.savedstate wurde zu einer stabilen Version weiterentwickelt. Dies ist eine Reihe von APIs, mit denen Entwickler Komponenten in den Prozess zum Wiederherstellen / Speichern des Instanzstatus 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 ist veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Diverse Fehlerkorrekturen

Version 1.0.0-beta01

7. Mai 2019

androidx.savedstate:savedstate:1.0.0-beta01 ist 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 ist veröffentlicht. androidx.savedstate:savedstate kombiniert die Artefakte androidx.savedstate:savedstate-bundle und androidx.savedstate:savedstate-common in einem Artefakt, da beschlossen wurde, die SavedState-Infrastruktur zu vereinfachen und Generics aus SavedStateRegistry zu entfernen. 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 kann der zuvor gespeicherte Status über consumeRestoredStateForKey abgerufen und ein Callback für registerSavedStateProvider registriert werden, um einen gespeicherten Status bereitzustellen, sobald das System ihn anfordert.