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
11 marca 2026 r. 1.4.0 - - 1.5.0-alpha01

Deklarowanie zależności

Aby dodać zależność od SavedState, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule 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.4.0"

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

Kotlin

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

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

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 oddać głos na istniejący problem, klikając przycisk gwiazdki.

Tworzenie nowego problemu

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

Wersja 1.5

Wersja 1.5.0-alpha01

11 marca 2026 r.

Publikacja androidx.savedstate:savedstate-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Włącz ogólną serializację obiektów SavedState, aby można było je kodować i dekodować za pomocą standardowych formatów, takich jak CBOR lub JSON, na wszystkich platformach. (Iafda4, b/425919375)

Zmiany w interfejsie API

  • Dodaj funkcje rozszerzające putKotlinSerializablegetKotlinSerializable do SavedStateWriterSavedStateReader, aby umożliwić bezpośrednie przechowywanie i pobieranie obiektów Kotlin Serializable za pomocą kluczy, co usprawni integrację z interfejsami API SavedState. (Iba02e)
  • Dodaj funkcje fabryczne dla LifecycleOwner, ViewModelStoreOwner i SavedStateRegistryOwner, aby zmniejszyć ilość kodu szablonowego podczas tworzenia niestandardowych komponentów właściciela. (I9682c)
  • Włącz zapisywanie i przywracanie SnapshotStateSet (utworzonych za pomocą mutableStateSetOf()) za pomocą rememberSerializable. Możesz teraz używać SnapshotStateSetrememberSerializable bez konieczności stosowania niestandardowego wygaszacza. (I9a4ed, b/449498367)

Wersja 1.4

Wersja 1.4.0

5 listopada 2025 r.

Publikacja androidx.savedstate:savedstate-*:1.4.0 Wersja 1.4.0 zawiera te zmiany.

Wersja 1.4.0-rc01

22 października 2025 r.

androidx.savedstate:savedstate-*:1.4.0-rc01 została wydana bez zmian w stosunku do wersji 1.4.0-beta01. Wersja 1.4.0-rc01 zawiera te zmiany.

Wersja 1.4.0-beta01

8 października 2025 r.

androidx.savedstate:savedstate-*:1.4.0-beta01 nie zawiera żadnych istotnych zmian w porównaniu z ostatnią wersją alfa. Wersja 1.4.0-beta01 zawiera te zmiany.

Wersja 1.4.0-alpha03

27 sierpnia 2025 roku

Publikacja androidx.savedstate:savedstate-*:1.4.0-alpha03 Wersja 1.4.0-alpha03 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano obsługę typów dopuszczających wartość null w przypadku elementów encodeToSavedStatedecodeFromSavedState. (I79062, b/439527454)
  • Zaktualizuj Compose do wersji 1.9.0. (I2b9de)

Wersja 1.4.0-alpha02

13 sierpnia 2025 r.

Publikacja androidx.savedstate:savedstate-*:1.4.0-alpha02 Wersja 1.4.0-alpha02 zawiera te zmiany.

Wersja 1.4.0-alpha01

30 lipca 2025 r.

Publikacja androidx.savedstate:savedstate-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano natywną obsługę typów dopuszczających wartość null w SavedStateRegistryOwner.saved, co upraszcza zapisywanie i przywracanie właściwości dopuszczających wartość null. (Ia632, b/421325690)

Wersja 1.3

Wersja 1.3.3

17 września 2025 r.

Publikacja androidx.savedstate:savedstate-*:1.3.3 Wersja 1.3.3 zawiera te zmiany.

Poprawki błędów

  • Rozwiązaliśmy problem z nieprawidłowym stosowaniem wtyczki Compose Compiler, który powodował uszkodzenie SavedStateartefaktów KMP. (Id2290, b/443965665)

Wersja 1.3.2

27 sierpnia 2025 roku

Publikacja androidx.savedstate:savedstate-*:1.3.2 Wersja 1.3.2 zawiera te zmiany.

Nowe funkcje

  • Dodano nowe platformy Kotlin Multiplatform (KMP) do artefaktu SavedState *-compose. Biblioteka Lifecycle obsługuje teraz te platformy: JVM (Android i komputery), Native (Linux, iOS, watchOS, macOS, MinGW) i Web (JavaScript, WasmJS). (/Idcf26)

Wersja 1.3.1

16 lipca 2025 r.

Publikacja androidx.savedstate:savedstate-*:1.3.1 Wersja 1.3.1 zawiera te zmiany.

Poprawki błędów

  • Dodaj do artefaktów SavedState wszystkie platformy KMP obsługiwane przez adnotacje.
  • Dodaliśmy nowe platformy Kotlin Multiplatform (KMP) do artefaktów SavedState. SavedState obsługuje teraz te platformy: JVM (Android i komputery), Native (Linux, iOS, watchOS, macOS, MinGW) i Web (JavaScript, WasmJS). Pamiętaj, że do artefaktów *-compose nie dodano żadnych nowych platform docelowych KMP, ponieważ zależy to od stabilnej wersji Compose 1.9. (I062f4).

Wersja 1.3.0

7 maja 2025 r.

Publikacja androidx.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 można było używać jego interfejsów API pomocniczych opartych na Compose poza interfejsem Compose. Zawsze należy go używać w przypadku interfejsu Compose1.9.0-alpha02 w wersji 1.3 lub nowszej, ale jest on wstecznie kompatybilny, więc można go używać ze wszystkimi wersjami Compose.
  • savedstate-ktxRozszerzenia Kotlinsavedstate-ktx 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 JVM na komputerach.
  • Wprowadzamy SavedStatetyp nieprzezroczysty jako abstrakcję, która zapewnia spójny sposób zapisywania i przywracania stanu aplikacji w KMP. Zawiera funkcje 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 zbioru ź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 przekonwertować na SavedState za pomocą metod encodeToSavedStatedecodeFromSavedState. Zwracany SavedState to zwykły Bundle na Androidzie, który może być używany przez dowolny interfejs API akceptujący 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, Fragment itp.) i automatyczne przywracanie tych klas po śmierci procesu i ponownym utworzeniu. Pamiętaj, że saved delegat jest leniwy i nie wywoła funkcji init lambda 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.

Publikacja androidx.savedstate:savedstate-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zmiany.

Wersja 1.3.0-beta01

9 kwietnia 2025 r.

Publikacja androidx.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.

Publikacja androidx.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 pierwotne. (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ęto wbudowane serializatory List i Array specyficzne dla Androida z publicznego interfejsu API (Ida293)
  • Zastąp SparseParcelableArraySerializer elementem SparseArraySerializer (I91de8)
  • Ujednolicenie działania wszystkich funkcji SavedStateReader.get przez zgłaszanie wyjątku, gdy typ wartości nie pasuje do typu zwracanego (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.

Publikacja androidx.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)
  • Sprawia, że wbudowane serializatory są obiektami 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)
  • Dodaj contentDeepToString do SavedStateReader (I14d10)

Wersja 1.3.0-alpha08

12 lutego 2025 r.

Publikacja androidx.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.

Publikacja androidx.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ń JavaSerializableSerializer i ParcelableSerializer abstrakcyjnymi (I268f6)
  • Usuń ogólny kod T : CharSequence z witryny CharSequenceSerializer (Ib40bd)

Wersja 1.3.0-alpha06

11 grudnia 2024 r.

Publikacja androidx.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 pakiet, 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 z SavedStateRegistryOwnerDelegate (I8c135, b/376026744)

Wersja 1.3.0-alpha05

13 listopada 2024 r.

Publikacja androidx.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 przekonwertować na SavedState za pomocą metod encodeToSavedStatedecodeFromSavedState. Zwracany SavedState to zwykły Bundle na Androidzie, który może być używany przez dowolny interfejs API akceptujący 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, Fragment itp.) i automatyczne przywracanie tych klas po śmierci procesu i ponownym utworzeniu. Pamiętaj, że saved delegat jest leniwy i nie wywoła funkcji init lambda 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.

Publikacja androidx.savedstate:savedstate-*:1.3.0-alpha04 Wersja 1.3.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

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.

Publikacja androidx.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 JVM na komputerach. (I26305, b/334076622)

Nowe funkcje

  • Wprowadzamy SavedStatetyp nieprzezroczysty jako abstrakcję, która zapewnia spójny sposób zapisywania i przywracania stanu aplikacji w KMP. Zawiera funkcje 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 zbioru źródeł. Na innych platformach SavedState jest instancją 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

  • SavedStateRegistry i SavedStateRegistryController są teraz zgodne z KMP. (Id7bb8, b/334076622)
  • Usługi SavedState, SavedStateWriterSavedStateReader są teraz zgodne z KMP. (I26305, b/334076622)

Wersja 1.3.0-alpha01

7 sierpnia 2024 r.

Publikacje androidx.savedstate:savedstate:1.3.0-alpha01androidx.savedstate:savedstate-ktx:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • savedstate-ktxRozszerzenia Kotlinsavedstate-ktx 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.

Publikacje androidx.savedstate:savedstate:1.2.1androidx.savedstate:savedstate-ktx:1.2.1 Wersja 1.2.1 zawiera te zatwierdzenia.

Aktualizacje zależności

Wersja 1.2.0

Wersja 1.2.0

29 czerwca 2022 r.

Publikacje androidx.savedstate:savedstate:1.2.0androidx.savedstate:savedstate-ktx:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.1.0

  • SavedStateRegistryController umożliwia teraz wcześniejsze dołączenie 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ść kodu źródłowego 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-ktxfindViewTreeSavedStateRegistryOwner.

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

Publikacje androidx.savedstate:savedstate:1.2.0-rc01androidx.savedstate:savedstate-ktx:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

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.

Publikacje androidx.savedstate:savedstate:1.2.0-beta01androidx.savedstate:savedstate-ktx:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Klasy SavedStateRegistryViewTreeSavedStateRegistryOwner zostały przepisane w Kotlinie. W przypadku ViewTreeSavedStateRegistryOwner jest to zmiana powodująca niezgodność kodu źródłowego 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-ktxfindViewTreeSavedStateRegistryOwner. 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

Publikacje androidx.savedstate:savedstate:1.2.0-alpha02androidx.savedstate:savedstate-ktx:1.2.0-alpha02 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 Kotlinie. 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.

Publikacje androidx.savedstate:savedstate:1.2.0-alpha01androidx.savedstate:savedstate-ktx:1.2.0-alpha01 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.

Publikacje androidx.savedstate:savedstate:1.1.0androidx.savedstate:savedstate-ktx:1.1.0 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 poprawnie wypełnić te pola, musisz przejść na Activity 1.2.0, Fragment 1.3.0AppCompat 1.3.0-alpha01 lub nowsze.
  • savedstate-ktx artefakt: dodano nowy savedstate-ktx artefakt z findViewTreeSavedStateRegistryOwner() rozszerzeniem Kotlin do pracy z ViewTreeSavedStateRegistryOwner.

Wersja 1.1.0-rc01

16 grudnia 2020 roku

androidx.savedstate:savedstate:1.1.0-rc01 i androidx.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-beta01 i androidx.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.

Publikacje androidx.savedstate:savedstate:1.1.0-alpha01androidx.savedstate:savedstate-ktx:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.

Nowe funkcje

Wersja 1.0.0

Wersja 1.0.0

5 września 2019 r.

Publikacja androidx.savedstate:savedstate:1.0.0 Zatwierdzenia zawarte 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 włą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.

Publikacja androidx.savedstate:savedstate:1.0.0-rc01 Zatwierdzenia zawarte 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.

Publikacja androidx.savedstate:savedstate:1.0.0-beta01 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Wersja 1.0.0-alpha02

13 marca 2019 r.

Publikacja androidx.savedstate:savedstate:1.0.0-alpha02 androidx.savedstate:savedstate łączy artefakty androidx.savedstate:savedstate-bundleandroidx.savedstate:savedstate-common w jeden artefakt, ponieważ podjęto decyzję o uproszczeniu infrastruktury savedstate i usunięciu typów ogólnych z SavedStateRegistry. Nie ma więc potrzeby stosowania osobnych modułów.

Pełną listę zmian zawartych 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 leki 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ą deweloperom 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 zapisanego stanu za pomocą consumeRestoredStateForKey i rejestrowanie wywołania zwrotnego w registerSavedStateProvider w celu udostępnienia zapisanego stanu, gdy system o to poprosi.