Savedstate
Schreiben Sie Plug-in-fähige Komponenten, die den UI-Status speichern, wenn ein Prozess abgebrochen wird, und stellen Sie ihn wieder her, wenn der Prozess neu gestartet wird.
Letzte Aktualisierung Stabile Version Release Candidate Beta-Ausgabe Alphaversion
30. Oktober 2024 1.2.1 - - 1.3.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 im Maven-Repository von Google.

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

Cool

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

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

Kotlin

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

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

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

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen 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 einem vorhandenen Problem Ihre Stimme hinzufügen, indem Sie auf die Sternschaltfläche klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.3

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

  • Einführung des SavedState-Typs als Abstraktion, um den Anwendungsstatus in KMP konsistent zu speichern und wiederherzustellen. Sie enthält SavedStateReader und SavedStateWriter zum Ändern des zu speichernden Status. Unter Android ist SavedState ein Typalias für Bundle, der die Binärkompatibilität gewährleistet und die Migration vorhandener APIs zu einem gemeinsamen Quellsatz 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 freigegeben. 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)

Hinweis

  • compileSdk auf 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 wurden 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 freigegeben. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • SavedStateRegistryController ermöglicht jetzt ein frühes 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.
    • Bei SavedStateRegistryOwner handelt es sich um eine nicht mit der Quelle kompatible Änderung für Klassen, die in Kotlin geschrieben wurden. Sie müssen jetzt die Property savedStateRegistry überschreiben, anstatt die vorherige getSavedStateRegistry()-Funktion zu implementieren.
    • Für ViewTreeSavedStateRegistryOwner ist dies eine nicht mit der Quelle kompatible Änderung für Klassen, die in Kotlin geschrieben wurden. 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. Damit wird die savedstate-ktx API von findViewTreeSavedStateRegistryOwner ersetzt.

Verhaltensänderungen

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

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 freigegeben. 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 zu klären, wie er die Benutzeroberfläche implementieren oder wann er die Methoden auf SavedStateRegistryController aufrufen soll. (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 freigegeben. Version 1.2.0-beta01 enthält diese Commits.

API-Änderungen

  • Die Klassen SavedStateRegistry und ViewTreeSavedStateRegistryOwner wurden in Kotlin umgeschrieben. Für ViewTreeSavedStateRegistryOwner ist dies eine nicht mit der Quelle kompatible Ä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. Damit wird die savedstate-ktx API von findViewTreeSavedStateRegistryOwner ersetzt. Dies ist binärkompatibel und bleibt für Implementierungen, die in der Programmiersprache Java geschrieben sind, 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 wurden 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. Bei SavedStateRegistryOwner handelt es sich um eine nicht mit der Quelle kompatible Änderung für Klassen, die in Kotlin geschrieben wurden. Sie müssen jetzt die Property savedStateRegistry überschreiben, anstatt die vorherige getSavedStateRegistry()-Funktion zu implementieren. Dies ist binär- und quellkompatibel für Implementierungen, die in der Programmiersprache Java geschrieben sind. (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 freigegeben. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

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

Verhaltensänderungen

  • SavedStateRegistry speichert kein leeres Bundle mehr, wenn kein Status gespeichert werden kann. (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 wurden 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 enthaltene SavedStateRegistry anhand einer View-Instanz abrufen. Sie müssen auf Activity 1.2.0, Fragment 1.3.0 und AppCompat 1.3.0-alpha01 oder höher umstellen, um diese Informationen korrekt einzugeben.
  • savedstate-ktx-Artefakt: Dem neuen savedstate-ktx-Artefakt wurde eine 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 1.1.0-beta01 unverändert 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 1.1.0-alpha01 unverändert 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 freigegeben. Version 1.1.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Mit einer neuen ViewTreeSavedStateRegistryOwner.get(View) API können Sie die enthaltene SavedStateRegistry anhand einer View-Instanz abrufen. Sie müssen ein Upgrade auf Activity 1.2.0-alpha05, Fragment 1.3.0-alpha05 und AppCompat 1.3.0-alpha01 ausführen, um dieses Feld korrekt auszufüllen. (aosp/1298679)
  • Dem neuen savedstate-ktx-Artefakt wurde eine 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.

Hauptfunktionen von SavedState 1.0.0

androidx.savedstate wurde in eine stabile Version überführt. Diese APIs ermöglichen es Entwicklern, Komponenten in den Prozess zum Wiederherstellen / Speichern des Instance-Status einzubinden. Der Haupteingangspunkt der API ist SavedStateRegistry. Über consumeRestoredStateForKey können Sie zuvor gespeicherte Status abrufen und einen Rückruf an registerSavedStateProvider registrieren, um einen gespeicherten Status 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 wurde 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. In androidx.savedstate:savedstate werden die Artefakte androidx.savedstate:savedstate-bundle und androidx.savedstate:savedstate-common zu einem einzigen Artefakt kombiniert, da die SavedState-Infrastruktur vereinfacht und die Generiken aus SavedStateRegistry entfernt wurden. Daher sind keine separaten Module erforderlich.

Eine vollständige Liste der Commits in dieser Version 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 Eigentümerkomponente neu gestartet wird.

API-Änderungen

  • Generika aus SavedStateRegistry<T> entfernt
  • AbstractSavedStateRegistry und BundlableSavedStateRegistry wurden entfernt. Verwenden Sie stattdessen einfach 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 Instance-Status einbinden können. Der Haupteingangspunkt der API ist SavedStateRegistry<T>. Über consumeRestoredStateForKey können Sie den zuvor gespeicherten Status abrufen und einen Rückruf an registerSavedStateProvider registrieren, um den Status bereitzustellen, sobald das System ihn anfordert.