Savedstate

Napisz komponenty z możliwością podłączania, które zapisują stan interfejsu po zakończeniu procesu i przywracają go po jego ponownym uruchomieniu.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wersja alfa
30 października 2024 r. 1.2.1 - - 1.3.0-alpha04

Deklarowanie zależności

Aby dodać zależność od SavedState, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.

Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle aplikacji lub modułu:

Groovy

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

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego zgłoszenia

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.3

Wersja 1.3.0-alpha04

30 października 2024 r.

Usługa androidx.savedstate:savedstate-*:1.3.0-alpha04 została zwolniona. Wersja 1.3.0-alpha04 zawiera te komity.

Zmiany w interfejsie API

Wersja 1.3.0-alpha03

16 października 2024 r.

Wersja androidx.savedstate:savedstate-*:1.3.0-alpha03 została udostępniona bez istotnych zmian. Wersja 1.3.0-alfa03 zawiera te zatwierdzenia.

Wersja 1.3.0-alpha02

2 października 2024 r.

androidx.savedstate:savedstate-*:1.3.0-alpha02 został zwolniony. Wersja 1.3.0-alpha02 zawiera te komity.

Kotlin Multiplatform

  • Moduł SavedState jest teraz zgodny z KMP. Obsługiwane są teraz platformy Android, iOS, Linux, Mac i JVM. (I26305, b/334076622)

Nowe funkcje

  • Wprowadź typ SavedState jako abstrakcję, aby zapewnić spójny sposób zapisywania i przywracania stanu aplikacji w KMP. Zawiera on SavedStateReaderSavedStateWriter do modyfikowania stanu, który ma zostać zapisany. W Androidzie SavedState jest aliasem typu Bundle, który zapewnia zgodność plików binarnych i ułatwia migrację istniejących interfejsów API do wspólnego zestawu źródłowego. Na innych platformach SavedState to instancja Map<String, Any>. (I18575, b/334076622)
  // Create a new SavedState object using the savedState DSL:
  val savedState = savedState {
    putInt("currentPage", 1)
    putString("filter", "favorites")
  }

  // Read from a SavedState object
  val currentPage = savedState.read { getInt("currentPage") }

  // Edit an existing SavedState object
  savedState.write {
    remove("currentPage")
  }

Zmiany w interfejsie API

  • SavedStateRegistrySavedStateRegistryController są teraz zgodne z KPM. (Id7bb8, b/334076622)
  • Funkcje SavedState, SavedStateWriter i SavedStateReader są teraz zgodne z KMP. (I26305, b/334076622)

Wersja 1.3.0-alpha01

7 sierpnia 2024 r.

androidx.savedstate:savedstate:1.3.0-alpha01 i androidx.savedstate:savedstate-ktx:1.3.0-alpha01 zostały udostępnione. Wersja 1.3.0-alfa01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Rozszerzenia savedstate-ktx w języku Kotlin zostały przeniesione do podstawowego modułu zapisanych stanów. (I1cc18, b/274803094)

Uwaga

  • Zaktualizuj compileSdk do 35 (5dc41be)

Wersja 1.2.1

Wersja 1.2.1

22 marca 2023 r.

androidx.savedstate:savedstate:1.2.1androidx.savedstate:savedstate-ktx:1.2.1 są dostępne. Wersja 1.2.1 zawiera te zatwierdzenia.

Aktualizacje zależności

Wersja 1.2.0

Wersja 1.2.0

29 czerwca 2022 r.

androidx.savedstate:savedstate:1.2.0 i androidx.savedstate:savedstate-ktx:1.2.0 zostały udostępnione. Wersja 1.2.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.1.0

  • SavedStateRegistryController umożliwia teraz wcześniejsze dołączanie SavedStateRegistry za pomocą performAttach().
  • Możesz teraz pobrać wcześniej zarejestrowany SavedStateProviderSavedStateRegistry za pomocą getSavedStateProvider().
  • Biblioteka SavedState została przepisana w języku Kotlin.
    • W przypadku SavedStateRegistryOwner jest to zmiana niezgodna ze źródłem w klasach napisanych w Kotlinie – teraz musisz zastąpić właściwość savedStateRegistry, a nie stosować poprzedniej funkcji getSavedStateRegistry().
    • W przypadku ViewTreeSavedStateRegistryOwner jest to zmiana niezgodna ze źródłem w przypadku klas napisanych w Kotlinie. Aby ustawić i znaleźć wcześniej ustawionego właściciela, musisz teraz bezpośrednio zaimportować i użyć metod rozszerzenia Kotlina w View klasy androidx.savedstate.setViewTreeSavedStateRegistryOwnerandroidx.savedstate.findViewTreeSavedStateRegistryOwner. Zastępuje to interfejs API savedstate-ktx interfejsu findViewTreeSavedStateRegistryOwner.

Zmiany w zachowaniu

  • SavedStateRegistry nie zapisuje już pustego pakietu, jeśli nie ma stanu do zapisania.

Wersja 1.2.0-rc01

11 maja 2022 roku

androidx.savedstate:savedstate:1.2.0-rc01androidx.savedstate:savedstate-ktx:1.2.0-rc01 są dostępne. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

Zmiany w dokumentacji

  • Dokumenty SavedStateRegistryOwner Kdocs zostały zaktualizowane, aby wyjaśnić obowiązki i umowę właściciela dotyczącą tego, jak powinien on implementować interfejs lub kiedy powinien wywoływać metody w SavedStateRegistryController. (Iefc95, b/228887344)

Wersja 1.2.0-beta01

20 kwietnia 2022 r.

androidx.savedstate:savedstate:1.2.0-beta01androidx.savedstate:savedstate-ktx:1.2.0-beta01 są dostępne. Wersja 1.2.0-beta01 zawiera te commity.

Zmiany w interfejsie API

  • Zajęcia SavedStateRegistry i ViewTreeSavedStateRegistryOwner zostały przepisane w Kotlin. W przypadku ViewTreeSavedStateRegistryOwner jest to niekompatybilna zmiana źródła w przypadku klas zapisanych w Kotlin. Musisz teraz bezpośrednio zaimportować i zastosować metody rozszerzenia Kotlin w systemach View z androidx.savedstate.setViewTreeSavedStateRegistryOwner i androidx.savedstate.findViewTreeSavedStateRegistryOwner, aby ustawić i znaleźć uprzedniego właściciela. Zastępuje on interfejs API savedstate-ktx usługi findViewTreeSavedStateRegistryOwner. Jest on zgodny z binarnymi implementacjami w języku Java i nadal zgodny ze źródłami. (b/220191285)

Wersja 1.2.0-alfa02

6 kwietnia 2022 roku

androidx.savedstate:savedstate:1.2.0-alpha02androidx.savedstate:savedstate-ktx:1.2.0-alpha02 są dostępne. Wersja 1.2.0-alpha02 zawiera te commity.

Nowe funkcje

  • Możesz teraz pobrać wcześniej zarejestrowany SavedStateProviderSavedStateRegistry za pomocą getSavedStateProvider(). (I7ea47, b/215406268)

Zmiany w interfejsie API

  • Klasy SavedStateRegistryOwner, SavedStateRegistryControllerRecreator zostały przepisane w Kotlinie. W przypadku SavedStateRegistryOwner jest to niekompatybilna zmiana źródła dla klas zapisanych w Kotlin. Musisz teraz zastąpić właściwość savedStateRegistry zamiast implementować poprzednią funkcję getSavedStateRegistry(). Jest to wersja zgodna z binarną i źródłową implementacji napisanych w języku programowania Java. (b/220191285)

Wersja 1.2.0-alpha01

26 stycznia 2022 r.

androidx.savedstate:savedstate:1.2.0-alpha01 i androidx.savedstate:savedstate-ktx:1.2.0-alpha01 zostały udostępnione. Wersja 1.2.0-alpha01 zawiera te commity.

Nowe funkcje

  • SavedStateRegistryController umożliwia teraz wczesne załączanie SavedStateRegistry za pomocą performAttach(). (Ice4bf)

Zmiany w zachowaniu

  • SavedStateRegistry nie zapisuje już pustego pakietu, jeśli nie ma stanu do zapisania. (Aosp/1896865, b/203457956)

Wersja 1.1.0

Wersja 1.1.0

10 lutego 2021 r.

androidx.savedstate:savedstate:1.1.0androidx.savedstate:savedstate-ktx:1.1.0 są dostępne. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.0.0

  • Interfejs API ViewTreeSavedStateRegistryOwner: nowy interfejs API ViewTreeSavedStateRegistryOwner.get(View) umożliwia pobieranie pliku SavedStateRegistry zawierającego dane z instancji View. Aby to zrobić, musisz uaktualnić wersję Activity 1.2.0, Fragment 1.3.0 i AppCompat 1.3.0-alpha01 lub nowszą wersją.
  • Element savedstate-ktx: dodaliśmy nowy element savedstate-ktx z rozszerzeniem Kotlina findViewTreeSavedStateRegistryOwner() do pracy z ViewTreeSavedStateRegistryOwner.

Wersja 1.1.0-rc01

16 grudnia 2020 roku

androidx.savedstate:savedstate:1.1.0-rc01androidx.savedstate:savedstate-ktx:1.1.0-rc01 są publikowane bez zmian od 1.1.0-beta01. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Wersja 1.1.0-beta01

1 października 2020 roku

androidx.savedstate:savedstate:1.1.0-beta01androidx.savedstate:savedstate-ktx:1.1.0-beta01 są publikowane bez zmian od 1.1.0-alpha01. Wersja 1.1.0-beta01 zawiera te commity.

Wersja 1.1.0-alpha01

20 maja 2020 r.

androidx.savedstate:savedstate:1.1.0-alpha01androidx.savedstate:savedstate-ktx:1.1.0-alpha01 są dostępne. Wersja 1.1.0-alpha01 zawiera te commity.

Nowe funkcje

Wersja 1.0.0

Wersja 1.0.0

5 września 2019 r.

androidx.savedstate:savedstate:1.0.0 został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.

Najważniejsze funkcje SavedState 1.0.0

androidx.savedstate została oznaczona jako wersja stabilna. To zestaw interfejsów API, które umożliwiają deweloperom dołączanie komponentów do procesu przywracania / zapisywania stanu instancji. Głównym punktem wejścia interfejsu API jest metoda SavedStateRegistry, która umożliwia odzyskiwanie wcześniej zapisanych stanów za pomocą metody consumeRestoredStateForKey i rejestrowanie wywołania zwrotnego registerSavedStateProvider, aby udostępnić zapisany stan, gdy system go zażąda.

Wersja 1.0.0-rc01

2 lipca 2019 r.

androidx.savedstate:savedstate:1.0.0-rc01 został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.

Poprawki błędów.

  • Naprawiono nieprawidłową regułę proguard (b/132655499)

Wersja 1.0.0-beta01

7 maja 2019 r.

androidx.savedstate:savedstate:1.0.0-beta01 został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.

Wersja 1.0.0-alpha02

13 marca 2019 r.

Usługa androidx.savedstate:savedstate:1.0.0-alpha02 została zwolniona. androidx.savedstate:savedstate łączy artefakty androidx.savedstate:savedstate-bundleandroidx.savedstate:savedstate-common w jeden artefakt, ponieważ podjęliśmy decyzję o uproszczeniu infrastruktury zapisanego stanu i usunięciu elementów ogólnych z SavedStateRegistry. Nie ma więc potrzeby tworzenia osobnych modułów.

Pełną listę zatwierdzeń zawartych w tej wersji znajdziesz tutaj.

Nowe funkcje

  • Dodano użytkownika SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ) Podana klasa zostanie uruchomiona, a metoda AutoRecreated.onRecreated zostanie wykonana po ponownym uruchomieniu komponentu właściciela.

Zmiany w interfejsie API

  • Leki generyczne usunięte z: SavedStateRegistry<T>
  • AbstractSavedStateRegistry & BundlableSavedStateRegistry zostały usunięte. Zamiast nich używaj prostej SavedStateRegistry.
  • Zmieniono nazwę z BundleSavedStateRegistryOwner na SavedStateRegistryOwner.

Wersja 1.0.0-alpha01

17 grudnia 2018 r.

To jest pierwsza wersja aplikacji SavedState.

Nowe funkcje

androidx.savedstate to nowy zestaw interfejsów API w wersji alfa, który umożliwia programistom dołączanie komponentów do procesu przywracania / zapisywania instancjiState. Głównym punktem wejścia interfejsu API jest SavedStateRegistry<T>, który umożliwia odzyskiwanie wcześniej zapisanego stanu za pomocą consumeRestoredStateForKey i rejestrowanie wywołania zwrotnego registerSavedStateProvider w celu udostępnienia zapisanego stanu, gdy system go zażąda.