Zapisany stan
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja Alfa |
|---|---|---|---|---|
| 22 października 2025 r. | 1.3.3 | 1.4.0-rc01 | - | - |
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.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") }
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 nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.4
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
- Dodaliśmy obsługę typów dopuszczających wartość null w przypadku elementów
encodeToSavedStateidecodeFromSavedState. (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
SavedStatewszystkie platformy KMP obsługiwane przez adnotacje. - Dodaliśmy nowe platformy Kotlin Multiplatform (KMP) do artefaktów
SavedState.SavedStateobsługuje teraz te platformy: JVM (Android i komputery), Native (Linux, iOS, watchOS, macOS, MinGW) i Web (JavaScript, WasmJS). Pamiętaj, że do artefaktów*-composenie 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
LocalSavedStateRegistryOwnerzostał przeniesiony z interfejsu Compose do nowego modułusavedstate-compose, aby jego interfejsy API pomocnicze oparte na Compose można było używać poza interfejsem Compose. Zawsze należy go używać w przypadku interfejsu Compose w wersji1.9.0-alpha02lub nowszej, ale jest on wstecznie kompatybilny, więc można go używać ze wszystkimi wersjami Compose.savedstate-ktxRozszerzenia Kotlin zostały przeniesione do podstawowego modułu savedstate.- Instancje
SavedStateRegistryOwnerpobrane za pomocąfindViewTreeSavedStateRegistryOwnermoż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 wViewTree.setViewTreeDisjointParent.
Kotlin Multiplatform
- Moduł
SavedStatejest teraz zgodny z KMP. Obsługiwane platformy to teraz Android, iOS, Linux, Mac i środowiska JVM na komputerach. Wprowadzenie
SavedStatetypu nieprzezroczystego jako abstrakcji, która zapewnia spójny sposób zapisywania i przywracania stanu aplikacji w KMP. Zawiera funkcjeSavedStateReaderiSavedStateWriter, które umożliwiają modyfikowanie stanu do zapisania. Na AndroidzieSavedStateto alias typuBundle, który zapewnia zgodność binarną i ułatwia migrację istniejących interfejsów API do wspólnego zestawu źródeł. Na innych platformachSavedStateto instancjaMap<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
SavedStateobsługuje teraz serializację KotlinX. Klasę oznaczoną adnotacją@Serializablemożesz przekształcić wSavedStateza pomocą metodencodeToSavedStateidecodeFromSavedState. Zwrócony obiektSavedStateto zwykły obiektBundlena Androidzie, który może być używany przez dowolny interfejs API akceptujący obiektBundle.@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 wandroidx.savedstate.serialization.serializerspakiecie wsavedstatemodule iandroidx.savedstate.compose.serialization.serializerspakiecie wsavedstate-composemodule.Dodaliśmy też
saved, delegata właściwości leniwej, aby ułatwić przechowywanie klas@SerializablewSavedStateRegistryOwner(np.ComponentActivityitp.) i automatycznie przywracać te klasy po zakończeniu i ponownym utworzeniu procesu.FragmentPamiętaj, żesaveddelegat jest leniwy i nie wywoła funkcjiinitlambda ani nie zapisze niczego wSavedStateRegistry, 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
saveddlaSavedStateHandlezostał dodany w cyklu życia2.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
getwSavedStateReader. (I0b641, b/399820614) - Dodaj
encodeDefaultsdoSavedStateConfiguration, 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
getOrNullmetody alternatywne dla wariantówSavedStateReader.get. Te metody automatycznie opakowują wartości proste. (I6228c, b/399820614)
Zmiany w interfejsie API
- Usuń
getOrElsezSavedStateReaderi zastąp gogetOrNull() ?: else(). (I87317, b/399820614) - Usuń modyfikator
inlinez metodSavedStateReaderiSavedStateWriter. (If2a02, b/399820614) - Usunięto wbudowane serializatory List i Array specyficzne dla Androida z publicznego interfejsu API (Ida293)
- Zastąp
SparseParcelableArraySerializerelementemSparseArraySerializer(I91de8) - Ujednolicenie działania wszystkich funkcji
SavedStateReader.getprzez zgłaszanie błędu, gdy typ wartości nie pasuje do typu zwracanej wartości (I78c4a, b/399317598) - Zmień nazwę
SavedState*DelegatesnaSavedState*Delegate. (I8589b, b/399629301) - Zmień nazwę
SavedStateConfignaSavedStateConfiguration. (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
Bundlemogły być domyślnie używane zencodeAsSavedState/decodeFromSavedStatelub w przypadku właściwości w klasach@Serializableza pomocą adnotacji@Contextual. (Ic01d2) - Dodaliśmy obsługę
classDiscriminatoriclassDiscriminatorModewSavedStateConfig. (I69b66, b/395104517)
Zmiany w interfejsie API
- Dodaj parametr
SavedStateConfigdo delegatówsaved()(I39b3a) - Tworzy wbudowane serializatory jako obiekty klasy typu singleton (Ifeee4)
- Właściwości
SavedStateConfigsą teraz publiczne, dzięki czemu inne moduły mogą korzystać z tych konfiguracji. (Ie5f49, b/378897438) - Obsługa
@Serializer(with = ...)w przypadkuMutableStateFlowSerializeriMutableStateSerializer(I90953) - Dodaj
contentDeepToStringdoSavedStateReader(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
MutableStateSerializerdosavedstate-composezlifecycle-viewmodel-compose, co umożliwia korzystanie z interfejsów SavedState Serialization API zMutableStatew Compose. (I4f690, b/378895074)
Zmiany w interfejsie API
- Dodaj funkcję fabryczną, aby utworzyć
SavedStatez istniejącegoSavedState. (I39f9a) - Dodaliśmy obsługę właściwości
Array<SavedState>iList<SavedState>wandroidx.savedstate. (Idd8a5) - Dodaj opcjonalny parametr
SavedStateConfigdo 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
MutableStateFlowSerializerdo serializacjikotlinx.coroutines.flow.MutableStateFlow. (I6a892, b/378895070)
Zmiany w interfejsie API
- Zastąpienie przeciążonych funkcji delegata
SavedStateRegistryOwner.saved()parametrami domyślnymi (Icd1c1) - Uczyń
JavaSerializableSerializeriParcelableSerializerabstrakcyjnymi (I268f6) - Usuń ogólny kod
T : CharSequencez witrynyCharSequenceSerializer(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
SavedStateKMP obsługuje teraz:IBinder,Size,SizeF,Array<Parcelable>,SparseArray<Parcelable>i Serializable (Android). (I1ba94, b/334076622)- Dodaj instancje
KSerializer, które mogą być używane 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
SavedStateRegistryOwnerpobrane za pomocąfindViewTreeSavedStateRegistryOwnermoż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 wViewTree.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.
Publikacja androidx.savedstate:savedstate-*:1.3.0-alpha05 Wersja 1.3.0-alpha05 zawiera te zmiany.
Obsługa serializacji KotlinX
SavedStateobsługuje teraz serializację KotlinX. Klasę oznaczoną adnotacją@Serializablemożesz przekonwertować naSavedStateza pomocą metodencodeToSavedStateidecodeFromSavedState. Zwrócony obiektSavedStateto zwykły obiektBundlena Androidzie, który może być używany przez dowolny interfejs API akceptujący obiektBundle. (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@SerializablewSavedStateRegistryOwner(np.ComponentActivityitp.) i automatycznie przywracać te klasy po zakończeniu i ponownym utworzeniu procesu.FragmentPamiętaj, żesaveddelegat jest leniwy i nie wywoła funkcjiinitlambda ani nie zapisze niczego wSavedStateRegistry, 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
saveddlaSavedStateHandlezostał dodany w cyklu życia2.9.0-alpha07.
Zmiany w interfejsie API
- Dodaj
toMapdoSavedState, aby można było przekształcić dowolny elementSavedStatew zwykły elementMap(płytka kopia). (I487b9, b/334076622) SavedStateKMP 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
- Biblioteka SavedState KMP obsługuje teraz typ Char. (I9ac2f, b/334076622)
- Dodaj
putNulliisNulldo SavedState KMP. (Iea71d, b/334076622) - Dodaj dodatkowe
savedStateparametry fabryczne obsługujące początkowyMap<String, Any>(I9b37d, b/334076622) - Biblioteka SavedState KMP obsługuje teraz porównanie
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.
Publikacja androidx.savedstate:savedstate-*:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zmiany.
Kotlin Multiplatform
- Moduł
SavedStatejest teraz zgodny z KMP. Obsługiwane platformy to teraz Android, iOS, Linux, Mac i środowiska JVM na komputerach. (I26305, b/334076622)
Nowe funkcje
- Wprowadzenie
SavedStatetypu nieprzezroczystego jako abstrakcji, która zapewnia spójny sposób zapisywania i przywracania stanu aplikacji w KMP. Zawiera funkcjeSavedStateReaderiSavedStateWriter, które umożliwiają modyfikowanie stanu do zapisania. Na AndroidzieSavedStateto alias typuBundle, który zapewnia zgodność binarną i ułatwia migrację istniejących interfejsów API do wspólnego zestawu źródeł. Na innych platformachSavedStateto instancjaMap<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
- Źródła
SavedStateRegistryiSavedStateRegistryControllersą teraz zgodne z KMP. (Id7bb8, b/334076622) - Usługi
SavedState,SavedStateWriteriSavedStateReadersą teraz zgodne z KMP. (I26305, b/334076622)
Wersja 1.3.0-alpha01
7 sierpnia 2024 r.
Publikacje androidx.savedstate:savedstate:1.3.0-alpha01 i androidx.savedstate:savedstate-ktx:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
savedstate-ktxRozszerzenia Kotlin zostały przeniesione do podstawowego modułu savedstate. (I1cc18, b/274803094)
Uwagi
- Zaktualizuj
compileSdkdo 35 (5dc41be)
Wersja 1.2.1
Wersja 1.2.1
22 marca 2023 r.
Publikacje androidx.savedstate:savedstate:1.2.1 i androidx.savedstate:savedstate-ktx:1.2.1 Wersja 1.2.1 zawiera te zatwierdzenia.
Aktualizacje zależności
SavedStatezależy teraz od cyklu życia2.6.1. (c1f621)
Wersja 1.2.0
Wersja 1.2.0
29 czerwca 2022 r.
Publikacje androidx.savedstate:savedstate:1.2.0 i androidx.savedstate:savedstate-ktx:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
SavedStateRegistryControllerumożliwia teraz wcześniejsze dołączenieSavedStateRegistryza pomocąperformAttach().- Możesz teraz odzyskać wcześniej zarejestrowany
SavedStateProviderzSavedStateRegistryza pomocągetSavedStateProvider(). - Biblioteka
SavedStatezostała przepisana w języku Kotlin.- W przypadku
SavedStateRegistryOwnerjest to zmiana powodująca niezgodność na poziomie kodu źródłowego w przypadku klas napisanych w Kotlinie – musisz teraz zastąpić właściwośćsavedStateRegistryzamiast implementować poprzednią funkcjęgetSavedStateRegistry(). - W przypadku
ViewTreeSavedStateRegistryOwnerjest 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 wViewwandroidx.savedstate.setViewTreeSavedStateRegistryOwneriandroidx.savedstate.findViewTreeSavedStateRegistryOwner, aby ustawić i znaleźć wcześniej ustawionego właściciela. Zastępuje on interfejs APIsavedstate-ktxusługifindViewTreeSavedStateRegistryOwner.
- W przypadku
Zmiany w zachowaniu
SavedStateRegistrynie 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-rc01 i androidx.savedstate:savedstate-ktx:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Zmiany w dokumentacji
SavedStateRegistryOwnerDokumentacja 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 wSavedStateRegistryController. (Iefc95, b/228887344)
Wersja 1.2.0-beta01
20 kwietnia 2022 r.
Publikacje androidx.savedstate:savedstate:1.2.0-beta01 i androidx.savedstate:savedstate-ktx:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Klasy
SavedStateRegistryiViewTreeSavedStateRegistryOwnerzostały przepisane w Kotlinie. W przypadkuViewTreeSavedStateRegistryOwnerjest to zmiana powodująca niezgodność ze źródłem w przypadku klas napisanych w Kotlinie – musisz teraz bezpośrednio importować i używać metod rozszerzających Kotlin wViewwandroidx.savedstate.setViewTreeSavedStateRegistryOwneriandroidx.savedstate.findViewTreeSavedStateRegistryOwner, aby ustawić i znaleźć wcześniej ustawionego właściciela. Zastępuje on interfejs APIsavedstate-ktxusługifindViewTreeSavedStateRegistryOwner. 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-alpha02 i androidx.savedstate:savedstate-ktx:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Możesz teraz odzyskać wcześniej zarejestrowany
SavedStateProviderzSavedStateRegistryza pomocągetSavedStateProvider(). (I7ea47, b/215406268)
Zmiany w interfejsie API
- Klasy
SavedStateRegistryOwner,SavedStateRegistryControlleriRecreatorzostały przepisane w Kotlinie. W przypadkuSavedStateRegistryOwnerjest to zmiana powodująca niezgodność na poziomie kodu źródłowego w przypadku klas napisanych w Kotlinie – musisz teraz zastąpić właściwośćsavedStateRegistryzamiast implementować poprzednią funkcję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-alpha01 i androidx.savedstate:savedstate-ktx:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.
Nowe funkcje
SavedStateRegistryControllerumożliwia teraz wcześniejsze dołączenieSavedStateRegistryza pomocąperformAttach(). (Ice4bf)
Zmiany w zachowaniu
SavedStateRegistrynie 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.0 i androidx.savedstate:savedstate-ktx:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Główne zmiany od wersji 1.0.0
ViewTreeSavedStateRegistryOwnerAPI: nowy interfejsViewTreeSavedStateRegistryOwner.get(View)API umożliwia pobieranieSavedStateRegistryzawierającego daną instancjęView. Aby poprawnie wypełnić te pola, musisz przejść na Activity1.2.0, Fragment1.3.0i AppCompat1.3.0-alpha01lub nowsze.savedstate-ktxartefakt: dodano nowysavedstate-ktxartefakt zfindViewTreeSavedStateRegistryOwner()rozszerzeniem Kotlin do pracy zViewTreeSavedStateRegistryOwner.
Wersja 1.1.0-rc01
16 grudnia 2020 roku
Wersje androidx.savedstate:savedstate:1.1.0-rc01 i androidx.savedstate:savedstate-ktx:1.1.0-rc01 zostały wydane 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
Wersje androidx.savedstate:savedstate:1.1.0-beta01 i androidx.savedstate:savedstate-ktx:1.1.0-beta01 zostały wydane 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-alpha01 i androidx.savedstate:savedstate-ktx:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Nowy interfejs
ViewTreeSavedStateRegistryOwner.get(View)API umożliwia pobieranie konteneraSavedStateRegistryna podstawie instancjiView. Aby poprawnie wypełnić te pola, musisz przejść na Activity1.2.0-alpha05, Fragment1.3.0-alpha05i AppCompat1.3.0-alpha01. (aosp/1298679) - Dodaliśmy nowy artefakt
savedstate-ktxz rozszerzeniem KotlinfindViewTreeSavedStateRegistryOwner()do pracy zViewTreeSavedStateRegistryOwner. (aosp/1299434)
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-bundle i androidx.savedstate:savedstate-common w jeden artefakt, ponieważ postanowiono uprościć infrastrukturę stanu zapisanego i usunąć typy ogólne 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 metodaAutoRecreated.onRecreatedzostanie 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
BundleSavedStateRegistryOwnerzostała zmieniona naSavedStateRegistryOwner
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 zapisanych stanów za pomocą consumeRestoredStateForKey i rejestrowanie wywołania zwrotnego w registerSavedStateProvider w celu udostępniania zapisanego stanu, gdy system o to poprosi.