Speicherpunkt
| Letzte Aktualisierung | Stabile Version | Releasekandidat | Betarelease | Alpha-Release |
|---|---|---|---|---|
| 22. Oktober 2025 | 1.3.3 | 1.4.0-rc01 | - | - |
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.3" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.3" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.3") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.3") }
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 stimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.4
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
encodeToSavedStateunddecodeFromSavedStatehinzugefü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.savedhinzugefü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, was dazu führte, dass
SavedState-KMP-Artefakte nicht funktionierten. (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 werden 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ügen Sie alle KMP-Ziele, die von Annotationen unterstützt werden, zu
SavedState-Artefakten hinzu. - Den
SavedState-Artefakten wurden neue Kotlin Multiplatform-Ziele (KMP) hinzugefügt.SavedStateunterstü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
LocalSavedStateRegistryOwnerwurde von Compose UI in das neue Modulsavedstate-composeverschoben, damit die Compose-basierten Hilfs-APIs außerhalb von Compose UI verwendet werden können. Diese Funktion sollte immer verwendet werden, wenn Sie Compose UI1.9.0-alpha02oder 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 überfindViewTreeSavedStateRegistryOwnerabgerufen werden, können jetzt über disjunkte übergeordnete Elemente einer Ansicht, z. B. einViewOverlay, aufgelöst werden. Weitere Informationen zu disjunkten Ansichtseltern finden Sie in den Versionshinweisen von Core oder in der Dokumentation unterViewTree.setViewTreeDisjointParent.
Kotlin Multiplatform
- Das Modul
SavedStateist jetzt KMP-kompatibel. Zu den unterstützten Plattformen gehören jetzt Android, iOS, Linux, Mac und JVM-Desktopumgebungen. Der undurchsichtige Typ
SavedStatewird als Abstraktion eingeführt, um eine einheitliche Möglichkeit zum Speichern und Wiederherstellen des Anwendungsstatus in KMP zu bieten. Sie enthält einSavedStateReaderund einSavedStateWriterzum Ändern des zu speichernden Status. Unter Android istSavedStateein Typalias fürBundle. Dadurch wird die binäre Kompatibilität gewährleistet und die Migration vorhandener APIs zu einem gemeinsamen Quellset erleichtert. Auf anderen Plattformen istSavedStateeineMap<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
SavedStateunterstützt jetzt KotlinX Serialization. Sie können eine mit@Serializableannotierte Klasse mit den MethodenencodeToSavedStateunddecodeFromSavedStatein einSavedStateumwandeln. Die zurückgegebeneSavedStateist ein reguläresBundleunter Android und kann von jeder API verwendet werden, die einBundleakzeptiert.@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 imandroidx.savedstate.serialization.serializers-Paket imsavedstate-Modul und imandroidx.savedstate.compose.serialization.serializers-Paket imsavedstate-compose-Modul.Außerdem haben wir
saved, einen Lazy-Property-Delegate, eingefügt, um das Speichern von@Serializable-Klassen in einemSavedStateRegistryOwnerzu vereinfachen (z.B.ComponentActivity,Fragmentusw.) und diese Klassen automatisch nach dem Beenden und Neustarten des Prozesses wiederherstellen lassen. Dersaved-Delegate ist lazy und ruft dieinit-Lambda-Funktion erst auf oder speichert erst dann etwas inSavedStateRegistry, 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.0wurde ein ähnlichersaved-Property-Delegate fürSavedStateHandlehinzugefü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
9. 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 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 ist veröffentlicht. Version 1.3.0-alpha10 enthält diese Commits.
Neue Funktionen
- Fügen Sie nicht reifizierte Methodenvarianten für
get-Sammlungen inSavedStateReaderhinzu. (I0b641, b/399820614) - Fügen Sie
encodeDefaultszuSavedStateConfigurationhinzu, um anzupassen, ob Attribute mit Standardwerten codiert werden sollen. (I893cc, b/395104517) - Fügen Sie
SnapshotStateMapSerializerhinzu, ummutableStateMapOfzu unterstützen. (Ie6f19, b/378895074) - Fügen Sie
SnapshotStateListSerializerhinzu, ummutableStateListOfzu unterstützen. (I4d888, b/378895074) - Fügen Sie
getOrNullalternative Methoden fürSavedStateReader.get-Varianten hinzu. Bei diesen Methoden werden primitive Werte automatisch in ein Objekt verpackt. (I6228c, b/399820614)
API-Änderungen
- Entfernen Sie
getOrElseausSavedStateReaderund verwenden Sie stattdessengetOrNull() ?: else(). (I87317, b/399820614) - Entfernen Sie den Modifikator
inlineaus den MethodenSavedStateReaderundSavedStateWriter. (If2a02, b/399820614) - Entfernen der integrierten Android-spezifischen Serialisierungsprogramme für Listen und Arrays aus der öffentlichen API (Ida293)
SparseParcelableArraySerializerdurchSparseArraySerializerersetzen (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) - Benennen Sie
SavedState*DelegatesinSavedState*Delegateum. (I8589b, b/399629301) - Benennen Sie
SavedStateConfiginSavedStateConfigurationum. (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
- Fügen Sie einen Fallback für integrierte Typen hinzu, damit alle von
Bundleunterstützten Typen standardmäßig mitencodeAsSavedState/decodeFromSavedStateoder für Attribute in@Serializable-Klassen über die Annotation@Contextualverwendet werden können. (Ic01d2) - Unterstützung für
classDiscriminatorundclassDiscriminatorModeaufSavedStateConfigeinbinden (I69b66, b/395104517)
API-Änderungen
SavedStateConfig-Parameter zusaved()-Delegaten hinzufügen (I39b3a)- Integrierte Serializer werden zu Singleton-Objekten (Ifeee4)
- Die
SavedStateConfig-Eigenschaften sind jetzt öffentlich, sodass andere Module diese Konfigurationen verwenden können. (Ie5f49, b/378897438) - Unterstützung von
@Serializer(with = ...)fürMutableStateFlowSerializerundMutableStateSerializer(I90953) contentDeepToStringzuSavedStateReaderhinzufü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
MutableStateSerializerwird vonlifecycle-viewmodel-composenachsavedstate-composeverschoben, sodass Sie die SavedState Serialization APIs mitMutableStatevon Compose verwenden können. (I4f690, b/378895074)
API-Änderungen
- Fügen Sie eine Factory-Funktion hinzu, um
SavedStateaus einem vorhandenenSavedStatezu erstellen. (I39f9a) - Unterstützung für
Array<SavedState>undList<SavedState>inandroidx.savedstatehinzugefügt. (Idd8a5) SavedStateConfig-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 ist veröffentlicht. Version 1.3.0-alpha07 enthält diese Commits.
Neue Funktionen
MutableStateFlowSerializerzum Serialisieren vonkotlinx.coroutines.flow.MutableStateFlowhinzugefügt. (I6a892, b/378895070)
API-Änderungen
- Überladene
SavedStateRegistryOwner.saved()-Delegatfunktionen durch Standardparameter ersetzen (Icd1c1) JavaSerializableSerializerundParcelableSerializerabstrakt machen (I268f6)- Entfernen Sie die generische
T : CharSequenceausCharSequenceSerializer(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
SavedStateKMP 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 überfindViewTreeSavedStateRegistryOwnerabgerufen werden, können jetzt über disjunkte übergeordnete Elemente einer Ansicht, z. B. einViewOverlay, aufgelöst werden. Weitere Informationen zu disjunkten Ansichtseltern finden Sie in den Versionshinweisen von Core oder in der Dokumentation unterViewTree.setViewTreeDisjointParent. (Iccb33)
API-Änderungen
- Die Benennung und Paketorganisation müssen konsistenter mit
SavedStateRegistryOwnerDelegatesein (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
SavedStateunterstützt jetzt KotlinX Serialization. Sie können eine mit@Serializableannotierte Klasse mit den MethodenencodeToSavedStateunddecodeFromSavedStatein einSavedStateumwandeln. Die zurückgegebeneSavedStateist ein reguläresBundleunter Android und kann von jeder API verwendet werden, die einBundleakzeptiert. (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 einemSavedStateRegistryOwnerzu vereinfachen (z.B.ComponentActivity,Fragmentusw.) und diese Klassen automatisch nach dem Beenden und Neustarten des Prozesses wiederherstellen lassen. Dersaved-Delegate ist lazy und ruft dieinit-Lambda-Funktion erst auf oder speichert erst dann etwas inSavedStateRegistry, 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-alpha07wurde ein ähnlichersaved-Property-Delegate fürSavedStateHandlehinzugefügt.
API-Änderungen
toMapwurde zuSavedStatehinzugefügt, sodass jedesSavedStatein ein reguläresMap(flache Kopie) konvertiert werden kann. (I487b9, b/334076622)SavedStateKMP 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
- SavedState KMP unterstützt jetzt „Char“. (I9ac2f, b/334076622)
- Fügen Sie
putNullundisNullzum SavedState KMP hinzu. (Iea71d, b/334076622) - Zusätzliche
savedState-Fabrikparameter für eine ersteMap<String, Any>hinzufügen (I9b37d, b/334076622) - Die SavedState KMP unterstützt jetzt den
contentDeepEquals-Vergleich. (Ia515c, b/334076622) - SavedState KMP unterstützt jetzt „Long“. (I4c180, b/334076622)
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
SavedStateist jetzt 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
SavedStatewird als Abstraktion eingeführt, um eine einheitliche Möglichkeit zum Speichern und Wiederherstellen des Anwendungsstatus in KMP zu bieten. Sie enthält einSavedStateReaderund einSavedStateWriterzum Ändern des zu speichernden Status. Unter Android istSavedStateein Typalias fürBundle. Dadurch wird die binäre Kompatibilität gewährleistet und die Migration vorhandener APIs zu einem gemeinsamen Quellset erleichtert. Auf anderen Plattformen istSavedStateeineMap<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
SavedStateRegistryundSavedStateRegistryControllersind jetzt mit KMP kompatibel. (Id7bb8, b/334076622)SavedState,SavedStateWriterundSavedStateReadersind 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 in das Basismodul „savedstate“ verschoben. (I1cc18, b/274803094)
Note
compileSdkauf 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 sind veröffentlicht. Version 1.2.1 enthält diese Commits.
Abhängigkeitsupdates
SavedStateist jetzt von Lebenszyklus2.6.1abhängig. (c1f621)
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
SavedStateRegistryControllerermöglicht jetzt das vorzeitige Anhängen vonSavedStateRegistryüberperformAttach().- Sie können jetzt eine zuvor registrierte
SavedStateProviderübergetSavedStateProvider()von einemSavedStateRegistryabrufen. - Die
SavedState-Bibliothek wurde in Kotlin neu geschrieben.- Für
SavedStateRegistryOwnerist dies eine quelleninkompatible Änderung für die in Kotlin geschriebenen Klassen. Sie müssen jetzt die PropertysavedStateRegistryüberschreiben, anstatt die vorherige FunktiongetSavedStateRegistry()zu implementieren. - Für
ViewTreeSavedStateRegistryOwnerist dies eine quelleninkompatible Änderung für die in Kotlin geschriebenen Klassen. Sie müssen jetzt die Kotlin-Erweiterungsmethoden fürViewvonandroidx.savedstate.setViewTreeSavedStateRegistryOwnerundandroidx.savedstate.findViewTreeSavedStateRegistryOwnerdirekt importieren und verwenden, um einen zuvor festgelegten Inhaber festzulegen und zu finden. Sie ersetzt diesavedstate-ktxAPI vonfindViewTreeSavedStateRegistryOwner.
- Für
Geändertes Verhalten
SavedStateRegistryspeichert 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ürSavedStateRegistryControllerzu 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
SavedStateRegistryundViewTreeSavedStateRegistryOwnerwurden in Kotlin neu geschrieben. FürViewTreeSavedStateRegistryOwnerist dies eine quelleninkompatible Änderung für die in Kotlin geschriebenen Klassen. Sie müssen jetzt die Kotlin-Erweiterungsmethoden fürViewvonandroidx.savedstate.setViewTreeSavedStateRegistryOwnerundandroidx.savedstate.findViewTreeSavedStateRegistryOwnerdirekt importieren und verwenden, um einen zuvor festgelegten Inhaber festzulegen und zu finden. Sie ersetzt diesavedstate-ktxAPI vonfindViewTreeSavedStateRegistryOwner. 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übergetSavedStateProvider()von einemSavedStateRegistryabrufen. (I7ea47, b/215406268)
API-Änderungen
- Die Klassen
SavedStateRegistryOwner,SavedStateRegistryControllerundRecreatorwurden in Kotlin neu geschrieben. FürSavedStateRegistryOwnerist dies eine quelleninkompatible Änderung für die in Kotlin geschriebenen Klassen. Sie müssen jetzt die PropertysavedStateRegistryüberschreiben, anstatt die vorherige FunktiongetSavedStateRegistry()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
SavedStateRegistryControllerermöglicht jetzt das frühe Anhängen vonSavedStateRegistryüberperformAttach(). (Ice4bf)
Geändertes Verhalten
SavedStateRegistryspeichert 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
ViewTreeSavedStateRegistryOwnerAPI: Mit einer neuenViewTreeSavedStateRegistryOwner.get(View)API können Sie die enthaltendeSavedStateRegistryfür eineView-Instanz abrufen. Sie müssen auf Activity1.2.0, Fragment1.3.0und AppCompat1.3.0-alpha01oder höher aktualisieren, damit die Daten korrekt ausgefüllt werden.savedstate-ktx-Artefakt: Das neuesavedstate-ktx-Artefakt wurde mit einerfindViewTreeSavedStateRegistryOwner()-Kotlin-Erweiterung für die Arbeit mitViewTreeSavedStateRegistryOwnerhinzugefü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 sind veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Mit einer neuen
ViewTreeSavedStateRegistryOwner.get(View)-API können Sie das enthaltendeSavedStateRegistryfür eineView-Instanz abrufen. Sie müssen auf Activity1.2.0-alpha05, Fragment1.3.0-alpha05und AppCompat1.3.0-alpha01aktualisieren, damit die Daten korrekt ausgegeben werden. (aosp/1298679) - Das neue
savedstate-ktx-Artefakt wurde mit einerfindViewTreeSavedStateRegistryOwner()-Kotlin-Erweiterung für die Arbeit mitViewTreeSavedStateRegistryOwnerhinzugefü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 ist in eine stabile Version übergegangen. 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 ist veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Falsche ProGuard-Regel korrigiert (b/132655499)
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. In androidx.savedstate:savedstate werden die Artefakte androidx.savedstate:savedstate-bundle und androidx.savedstate:savedstate-common in einem Artefakt kombiniert, 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 MethodeAutoRecreated.onRecreatedwird 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. BundleSavedStateRegistryOwnerwird inSavedStateRegistryOwnerumbenannt
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.