Zapisany stan

Pisz komponenty wtykowe, które zapisują stan interfejsu, gdy proces zostanie zakończony, i przywracają go po ponownym uruchomieniu procesu.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja Beta Wersja alfa
2 lipca 2025 r. 1.3.1 - - -

Deklarowanie zależności

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

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

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

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 odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego problemu

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

Wersja 1.3

Wersja 1.3.0

7 maja 2025 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0 Wersja 1.3.0 zawiera te zmiany.

Ważne zmiany od wersji 1.2.0

  • LocalSavedStateRegistryOwner został przeniesiony z interfejsu Compose do nowego modułu savedstate-compose, aby jego interfejsy API pomocnicze oparte na Compose mogły być używane poza interfejsem Compose. Zawsze należy go używać w przypadku Compose UI1.9.0-alpha02 i nowszych wersji, ale jest on wstecznie kompatybilny, więc można go używać ze wszystkimi wersjami Compose.
  • savedstate-ktx Rozszerzenia Kotlin zostały przeniesione do podstawowego modułu savedstate.
  • Instancje SavedStateRegistryOwner pobrane za pomocą findViewTreeSavedStateRegistryOwner można teraz rozwiązywać za pomocą rozłącznych elementów nadrzędnych widoku, np. ViewOverlay. Więcej informacji o rozłącznych elementach nadrzędnych widoku znajdziesz w informacjach o wersji podstawowej lub w dokumentacji w ViewTree.setViewTreeDisjointParent.

Kotlin Multiplatform

  • Moduł SavedState jest teraz zgodny z KMP. Obsługiwane platformy to teraz Android, iOS, Linux, Mac i środowiska pulpitu JVM.
  • Wprowadzenie SavedState typu nieprzezroczystego jako abstrakcji, która zapewnia spójny sposób zapisywania i przywracania stanu aplikacji w KMP. Zawiera ona symbole SavedStateReaderSavedStateWriter, które umożliwiają modyfikowanie stanu do zapisania. Na Androidzie SavedState to alias typu Bundle, który zapewnia zgodność binarną i ułatwia migrację istniejących interfejsów API do wspólnego zestawu źródeł. Na innych platformach SavedState to instancja Map<String, Any>.

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

Obsługa serializacji KotlinX

  • SavedState obsługuje teraz serializację KotlinX. Klasę oznaczoną adnotacją @Serializable możesz przekształcić w SavedState za pomocą metod encodeToSavedStatedecodeFromSavedState. Zwrócony obiekt SavedState to zwykły obiekt Bundle na Androidzie, który może być używany przez dowolny interfejs API akceptujący obiekt Bundle.

    @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)
    }
    
  • Większość typów (np. typy proste) jest obsługiwana bezpośrednio bez konieczności konfiguracji, ale dodatkowe serializatory, których można używać z @Serializable(with = ___:class), znajdziesz w androidx.savedstate.serialization.serializers pakieciesavedstate module i androidx.savedstate.compose.serialization.serializers pakieciesavedstate-compose module.

  • Dodaliśmy też saved, delegata właściwości leniwej, aby ułatwić przechowywanie klas @SerializableSavedStateRegistryOwner (np. ComponentActivity itp.) i automatycznie przywracać te klasy po zakończeniu i ponownym utworzeniu procesu.Fragment Pamiętaj, że saved delegat jest leniwy i nie wywoła init lambdy ani nie zapisze niczego w SavedStateRegistry, dopóki nie zostanie do niego uzyskany dostęp.

    @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")
        }
    }
    
  • Podobny delegat właściwości saved dla SavedStateHandle został dodany w cyklu życia 2.9.0.

Wersja 1.3.0-rc01

23 kwietnia 2025 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te commity.

Wersja 1.3.0-beta01

9 kwietnia 2025 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zmiany.

Aktualizacje zależności

  • Ta biblioteka jest teraz kierowana na poziom języka Kotlin 2.0 i wymaga KGP w wersji 2.0.0 lub nowszej. (Idb6b5)

Wersja 1.3.0-alpha11

26 marca 2025 r.

androidx.savedstate:savedstate-*:1.3.0-alpha11 została wydana bez znaczących zmian publicznych. Wersja 1.3.0-alpha11 zawiera te zmiany.

Wersja 1.3.0-alpha10

12 marca 2025 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-alpha10 Wersja 1.3.0-alpha10 zawiera te zmiany.

Nowe funkcje

  • Dodaj warianty metod niekonkretnych dla kolekcji get w SavedStateReader. (I0b641, b/399820614)
  • Dodaj encodeDefaults do SavedStateConfiguration, aby umożliwić dostosowywanie, czy właściwości z wartościami domyślnymi mają być kodowane. (I893cc, b/395104517)
  • Dodaj SnapshotStateMapSerializer, aby obsługiwać mutableStateMapOf. (Ie6f19, b/378895074)
  • Dodaj SnapshotStateListSerializer, aby obsługiwać mutableStateListOf. (I4d888, b/378895074)
  • Dodaj getOrNull metody alternatywne dla wariantów SavedStateReader.get. Te metody automatycznie opakowują wartości proste. (I6228c, b/399820614)

Zmiany w interfejsie API

  • Usuń getOrElseSavedStateReader na rzecz getOrNull() ?: else(). (I87317, b/399820614)
  • Usuń modyfikator inline z metod SavedStateReaderSavedStateWriter. (If2a02, b/399820614)
  • Usunięcie z publicznego interfejsu API wbudowanych serializatorów List i Array specyficznych dla Androida (Ida293)
  • Zastąp SparseParcelableArraySerializer elementem SparseArraySerializer (I91de8)
  • Ujednolicenie działania wszystkich funkcji SavedStateReader.get przez zgłaszanie błędu, gdy typ wartości nie pasuje do typu zwracanej wartości (I78c4a, b/399317598)
  • Zmień nazwę SavedState*Delegates na SavedState*Delegate. (I8589b, b/399629301)
  • Zmień nazwę SavedStateConfig na SavedStateConfiguration. (I043a5, b/399629301)

Wersja 1.3.0-alpha09

26 lutego 2025 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-alpha09 Wersja 1.3.0-alpha09 zawiera te zmiany.

Nowe funkcje

  • Dodaj rezerwę dla typów wbudowanych, aby wszystkie typy obsługiwane przez Bundle mogły być domyślnie używane z encodeAsSavedState/decodeFromSavedState lub w przypadku właściwości w klasach @Serializable za pomocą adnotacji @Contextual. (Ic01d2)
  • Dodaliśmy obsługę classDiscriminatorclassDiscriminatorModeSavedStateConfig. (I69b66, b/395104517)

Zmiany w interfejsie API

  • Dodaj parametr SavedStateConfig do delegatów saved() (I39b3a)
  • Tworzy wbudowane serializatory jako obiekty klasy typu singleton (Ifeee4)
  • Właściwości SavedStateConfig są teraz publiczne, dzięki czemu inne moduły mogą korzystać z tych konfiguracji. (Ie5f49, b/378897438)
  • Obsługa @Serializer(with = ...) w przypadku MutableStateFlowSerializerMutableStateSerializer (I90953)
  • Dodawanie contentDeepToString do SavedStateReader (I14d10)

Wersja 1.3.0-alpha08

12 lutego 2025 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-alpha08 Wersja 1.3.0-alpha08 zawiera te zmiany.

Nowe funkcje

  • Przeniesienie MutableStateSerializer do savedstate-composelifecycle-viewmodel-compose, co umożliwia korzystanie z interfejsów SavedState Serialization API z MutableState w Compose. (I4f690, b/378895074)

Zmiany w interfejsie API

  • Dodaj funkcję fabryczną, aby utworzyć SavedState z istniejącego SavedState. (I39f9a)
  • Dodaliśmy obsługę właściwości Array<SavedState> i List<SavedState> w androidx.savedstate. (Idd8a5)
  • Dodaj opcjonalny parametr SavedStateConfig do kodowania/dekodowania SavedState (I6c4c0)

Wersja 1.3.0-alpha07

29 stycznia 2025 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-alpha07 Wersja 1.3.0-alpha07 zawiera te zmiany.

Nowe funkcje

  • Dodaj MutableStateFlowSerializer do serializacji kotlinx.coroutines.flow.MutableStateFlow. (I6a892, b/378895070)

Zmiany w interfejsie API

  • Zastąpienie przeciążonych funkcji delegata SavedStateRegistryOwner.saved() parametrami domyślnymi (Icd1c1)
  • Uczyń JavaSerializableSerializerParcelableSerializer abstrakcyjnymi (I268f6)
  • Usuń ogólny kod T : CharSequence z witryny CharSequenceSerializer (Ib40bd)

Wersja 1.3.0-alpha06

11 grudnia 2024 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-alpha06 Wersja 1.3.0-alpha06 zawiera te zmiany.

Nowe funkcje

  • SavedState KMP obsługuje teraz: IBinder, Size, SizeF, Array<Parcelable>, SparseArray<Parcelable> i Serializable (Android). (I1ba94, b/334076622)
  • Dodaj instancje KSerializer, których można używać do kodowania i dekodowania typów Java i Androida obsługiwanych przez Bundle, oznaczając odpowiednie pole w klasie za pomocą @Serializable(with = ParcelableSerializer::class). (I8c10f, I28caf, b/376026712)
  • Instancje SavedStateRegistryOwner pobrane za pomocą findViewTreeSavedStateRegistryOwner można teraz rozwiązywać za pomocą rozłącznych elementów nadrzędnych widoku, np. ViewOverlay. Więcej informacji o rozłącznych elementach nadrzędnych widoku znajdziesz w informacjach o wersji podstawowej lub w dokumentacji w ViewTree.setViewTreeDisjointParent. (Iccb33)

Zmiany w interfejsie API

  • Ujednolicenie nazewnictwa i organizacji pakietów zgodnie z SavedStateRegistryOwnerDelegate (I8c135, b/376026744)

Wersja 1.3.0-alpha05

13 listopada 2024 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-alpha05 Wersja 1.3.0-alpha05 zawiera te zmiany.

Obsługa serializacji KotlinX

  • SavedState obsługuje teraz serializację KotlinX. Klasę oznaczoną adnotacją @Serializable możesz przekształcić w SavedState za pomocą metod encodeToSavedStatedecodeFromSavedState. Zwrócony obiekt SavedState to zwykły obiekt Bundle na Androidzie, który może być używany przez dowolny interfejs API akceptujący obiekt Bundle. (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)
    }
    
  • Dodaliśmy też saved, delegata właściwości leniwej, aby ułatwić przechowywanie klas @SerializableSavedStateRegistryOwner (np. ComponentActivity itp.) i automatycznie przywracać te klasy po zakończeniu i ponownym utworzeniu procesu.Fragment Pamiętaj, że saved delegat jest leniwy i nie wywoła init lambdy ani nie zapisze niczego w SavedStateRegistry, dopóki nie zostanie do niego uzyskany dostęp. (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")
        }
    }
    
  • Podobny delegat właściwości saved dla SavedStateHandle został dodany w cyklu życia 2.9.0-alpha07.

Zmiany w interfejsie API

  • Dodaj toMap do SavedState, aby można było przekształcić dowolny element SavedState w zwykły element Map (płytka kopia). (I487b9, b/334076622)
  • SavedState KMP obsługuje teraz tablice. (Ic0552, b/334076622)

Wersja 1.3.0-alpha04

30 października 2024 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-alpha04 Wersja 1.3.0-alpha04 zawiera te commity.

Zmiany w interfejsie API

  • Biblioteka SavedState KMP obsługuje teraz typ Char. (I9ac2f, b/334076622)
  • Dodaj putNull i isNull do SavedState KMP. (Iea71d, b/334076622)
  • Dodaj dodatkowe savedState parametry fabryczne obsługujące początkowy Map<String, Any> (I9b37d, b/334076622)
  • Biblioteka SavedState KMP obsługuje teraz porównywanie contentDeepEquals. (Ia515c, b/334076622)
  • Biblioteka SavedState KMP obsługuje teraz typ Long. (I4c180, b/334076622)

Wersja 1.3.0-alpha03

16 października 2024 r.

Wersja androidx.savedstate:savedstate-*:1.3.0-alpha03 nie zawiera znaczących zmian. Wersja 1.3.0-alpha03 zawiera te zmiany.

Wersja 1.3.0-alpha02

2 października 2024 r.

Zostanie wycofaneandroidx.savedstate:savedstate-*:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zmiany.

Kotlin Multiplatform

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

Nowe funkcje

  • Wprowadzenie SavedState typu nieprzezroczystego jako abstrakcji, która zapewnia spójny sposób zapisywania i przywracania stanu aplikacji w KMP. Zawiera ona symbole SavedStateReaderSavedStateWriter, które umożliwiają modyfikowanie stanu do zapisania. Na Androidzie SavedState to alias typu Bundle, który zapewnia zgodność binarną i ułatwia migrację istniejących interfejsów API do wspólnego zestawu źródeł. 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 KMP. (Id7bb8, b/334076622)
  • Usługi SavedState, SavedStateWriter i SavedStateReader są teraz zgodne z platformą KMP. (I26305, b/334076622)

Wersja 1.3.0-alpha01

7 sierpnia 2024 r.

androidx.savedstate:savedstate:1.3.0-alpha01androidx.savedstate:savedstate-ktx:1.3.0-alpha01 zostały opublikowane. Wersja 1.3.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • savedstate-ktx Rozszerzenia Kotlin zostały przeniesione do podstawowego modułu savedstate. (I1cc18, b/274803094)

Uwagi

  • 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 zostały opublikowane. Wersja 1.2.1 zawiera te zmiany.

Aktualizacje zależności

Wersja 1.2.0

Wersja 1.2.0

29 czerwca 2022 r.

androidx.savedstate:savedstate:1.2.0androidx.savedstate:savedstate-ktx:1.2.0 zostały opublikowane. Wersja 1.2.0 zawiera te zmiany.

Ważne zmiany od wersji 1.1.0

  • SavedStateRegistryController umożliwia teraz wcześniejsze dołączanie SavedStateRegistry za pomocą performAttach().
  • Możesz teraz odzyskać wcześniej zarejestrowany SavedStateProviderSavedStateRegistry za pomocą getSavedStateProvider().
  • Biblioteka SavedState została przepisana w języku Kotlin.
    • W przypadku SavedStateRegistryOwner jest to zmiana powodująca niezgodność kodu źródłowego w przypadku klas napisanych w Kotlinie – musisz teraz zastąpić właściwość savedStateRegistry, a nie implementować poprzedniej funkcji getSavedStateRegistry().
    • W przypadku ViewTreeSavedStateRegistryOwner jest to zmiana powodująca niezgodność ze źródłem w przypadku klas napisanych w Kotlinie – musisz teraz bezpośrednio importować i używać metod rozszerzeń Kotlin w Viewandroidx.savedstate.setViewTreeSavedStateRegistryOwnerandroidx.savedstate.findViewTreeSavedStateRegistryOwner, aby ustawić i znaleźć wcześniej ustawionego właściciela. Zastępuje on interfejs API savedstate-ktx usługi 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 zostały opublikowane. Wersja 1.2.0-rc01 zawiera te zmiany.

Zmiany w dokumentacji

  • SavedStateRegistryOwner Dokumentacja Kdocs została zaktualizowana, aby wyjaśnić obowiązki i umowę, które właściciel ma w zakresie implementacji interfejsu lub wywoływania metod 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 zostały opublikowane. Wersja 1.2.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Klasy SavedStateRegistryViewTreeSavedStateRegistryOwner zostały przepisane w Kotlinie. W przypadku ViewTreeSavedStateRegistryOwner jest to zmiana powodująca niezgodność ze źródłem w przypadku klas napisanych w Kotlinie – musisz teraz bezpośrednio importować i używać metod rozszerzeń Kotlin w Viewandroidx.savedstate.setViewTreeSavedStateRegistryOwnerandroidx.savedstate.findViewTreeSavedStateRegistryOwner, aby ustawić i znaleźć wcześniej ustawionego właściciela. Zastępuje on interfejs API savedstate-ktx usługi findViewTreeSavedStateRegistryOwner. Jest on zgodny binarnie i pozostaje zgodny ze źródłem w przypadku implementacji napisanych w języku programowania Java. (b/220191285)

Wersja 1.2.0-alpha02

6 kwietnia 2022 roku

androidx.savedstate:savedstate:1.2.0-alpha02androidx.savedstate:savedstate-ktx:1.2.0-alpha02 zostały opublikowane. Wersja 1.2.0-alpha02 zawiera te zmiany.

Nowe funkcje

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

Zmiany w interfejsie API

  • Klasy SavedStateRegistryOwner, SavedStateRegistryControllerRecreator zostały przepisane w języku Kotlin. W przypadku SavedStateRegistryOwner jest to zmiana powodująca niezgodność kodu źródłowego w przypadku klas napisanych w Kotlinie – musisz teraz zastąpić właściwość savedStateRegistry, a nie implementować poprzedniej funkcji getSavedStateRegistry(). Jest to zgodne binarnie i źródłowo w przypadku implementacji napisanych w języku programowania Java. (b/220191285)

Wersja 1.2.0-alpha01

26 stycznia 2022 r.

androidx.savedstate:savedstate:1.2.0-alpha01androidx.savedstate:savedstate-ktx:1.2.0-alpha01 zostały opublikowane. Wersja 1.2.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • SavedStateRegistryController umożliwia teraz wcześniejsze dołączenie 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 zostały opublikowane. Wersja 1.1.0 zawiera te zmiany.

Główne zmiany od wersji 1.0.0

  • ViewTreeSavedStateRegistryOwner API: nowy interfejs ViewTreeSavedStateRegistryOwner.get(View) API umożliwia pobieranie kontenera SavedStateRegistry na podstawie instancji View. Aby prawidłowo wypełnić te pola, musisz przejść na Activity 1.2.0, Fragment 1.3.0AppCompat 1.3.0-alpha01 lub nowsze.
  • savedstate-ktx artefakt: dodaliśmy nowy savedstate-ktx artefakt z rozszerzeniem Kotlin do pracy z ViewTreeSavedStateRegistryOwner.findViewTreeSavedStateRegistryOwner()

Wersja 1.1.0-rc01

16 grudnia 2020 roku

androidx.savedstate:savedstate:1.1.0-rc01androidx.savedstate:savedstate-ktx:1.1.0-rc01 zostały opublikowane bez zmian od 1.1.0-beta01. Wersja 1.1.0-rc01 zawiera te zmiany.

Wersja 1.1.0-beta01

1 października 2020 roku

androidx.savedstate:savedstate:1.1.0-beta01androidx.savedstate:savedstate-ktx:1.1.0-beta01 zostały opublikowane bez zmian od 1.1.0-alpha01. Wersja 1.1.0-beta01 zawiera te zmiany.

Wersja 1.1.0-alpha01

20 maja 2020 r.

androidx.savedstate:savedstate:1.1.0-alpha01androidx.savedstate:savedstate-ktx:1.1.0-alpha01 zostały opublikowane. Wersja 1.1.0-alpha01 zawiera te zmiany.

Nowe funkcje

Wersja 1.0.0

Wersja 1.0.0

5 września 2019 r.

Zostanie wycofaneandroidx.savedstate:savedstate:1.0.0 Listę zmian w tej wersji znajdziesz tutaj.

Główne funkcje SavedState w wersji 1.0.0

androidx.savedstate została oznaczona jako wersja stabilna. Jest to zestaw interfejsów API, które umożliwiają deweloperom podłączanie komponentów do procesu przywracania lub zapisywania stanu instancji. Głównym punktem wejścia interfejsu API jest SavedStateRegistry, który umożliwia pobieranie wcześniej zapisanych stanów za pomocą consumeRestoredStateForKey i rejestrowanie wywołania zwrotnego w registerSavedStateProvider w celu udostępnienia zapisanego stanu, gdy system o to poprosi.

Wersja 1.0.0-rc01

2 lipca 2019 r.

Zostanie wycofaneandroidx.savedstate:savedstate:1.0.0-rc01 Listę zmian w tej wersji znajdziesz tutaj.

Poprawki błędów

  • Poprawiono nieprawidłową regułę ProGuard (b/132655499)

Wersja 1.0.0-beta01

7 maja 2019 r.

Zostanie wycofaneandroidx.savedstate:savedstate:1.0.0-beta01 Listę zmian w tej wersji znajdziesz tutaj.

Wersja 1.0.0-alpha02

13 marca 2019 r.

Zostanie wycofaneandroidx.savedstate:savedstate:1.0.0-alpha02 androidx.savedstate:savedstate łączy artefakty androidx.savedstate:savedstate-bundleandroidx.savedstate:savedstate-common w jeden artefakt, ponieważ zdecydowano się uprościć infrastrukturę savedstate i usunąć typy ogólne z SavedStateRegistry. Nie ma więc potrzeby stosowania osobnych modułów.

Pełną listę zmian w tej wersji znajdziesz tutaj.

Nowe funkcje

  • Dodano użytkownika SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ) Podana klasa zostanie utworzona, a metoda AutoRecreated.onRecreated zostanie uruchomiona po ponownym uruchomieniu komponentu nadrzędnego.

Zmiany w interfejsie API

  • Usunięto produkty generyczne z: SavedStateRegistry<T>
  • Klasy AbstractSavedStateRegistry i BundlableSavedStateRegistry zostały usunięte. Zamiast nich używaj prostego interfejsu SavedStateRegistry.
  • Nazwa BundleSavedStateRegistryOwner została zmieniona na SavedStateRegistryOwner

Wersja 1.0.0-alpha01

17 grudnia 2018 r.

To pierwsza wersja SavedState.

Nowe funkcje

androidx.savedstate to nowy zestaw interfejsów API w wersji alfa, które umożliwiają programistom podłączanie komponentów do procesu przywracania lub zapisywania stanu instancji. Głównym punktem wejścia interfejsu API jest SavedStateRegistry<T>, który umożliwia pobieranie wcześniej zapisanych stanów za pomocą consumeRestoredStateForKey i rejestrowanie wywołania zwrotnego w registerSavedStateProvider w celu udostępniania zapisanego stanu, gdy system o to poprosi.