Zapisany stan
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.
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łusavedstate-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 wViewTree.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 symboleSavedStateReader
iSavedStateWriter
, które umożliwiają modyfikowanie stanu do zapisania. Na AndroidzieSavedState
to alias typuBundle
, który zapewnia zgodność binarną i ułatwia migrację istniejących interfejsów API do wspólnego zestawu źródeł. Na innych platformachSavedState
to 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
SavedState
obsługuje teraz serializację KotlinX. Klasę oznaczoną adnotacją@Serializable
możesz przekształcić wSavedState
za pomocą metodencodeToSavedState
idecodeFromSavedState
. Zwrócony obiektSavedState
to zwykły obiektBundle
na 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.serializers
pakiecie wsavedstate
module iandroidx.savedstate.compose.serialization.serializers
pakiecie wsavedstate-compose
module.Dodaliśmy też
saved
, delegata właściwości leniwej, aby ułatwić przechowywanie klas@Serializable
wSavedStateRegistryOwner
(np.ComponentActivity
itp.) i automatycznie przywracać te klasy po zakończeniu i ponownym utworzeniu procesu.Fragment
Pamiętaj, żesaved
delegat jest leniwy i nie wywołainit
lambdy 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
saved
dlaSavedStateHandle
został dodany w cyklu życia2.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
wSavedStateReader
. (I0b641, b/399820614) - Dodaj
encodeDefaults
doSavedStateConfiguration
, 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ówSavedStateReader.get
. Te metody automatycznie opakowują wartości proste. (I6228c, b/399820614)
Zmiany w interfejsie API
- Usuń
getOrElse
zSavedStateReader
na rzeczgetOrNull() ?: else()
. (I87317, b/399820614) - Usuń modyfikator
inline
z metodSavedStateReader
iSavedStateWriter
. (If2a02, b/399820614) - Usunięcie z publicznego interfejsu API wbudowanych serializatorów List i Array specyficznych dla Androida (Ida293)
- Zastąp
SparseParcelableArraySerializer
elementemSparseArraySerializer
(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
naSavedState*Delegate
. (I8589b, b/399629301) - Zmień nazwę
SavedStateConfig
naSavedStateConfiguration
. (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 zencodeAsSavedState
/decodeFromSavedState
lub w przypadku właściwości w klasach@Serializable
za pomocą adnotacji@Contextual
. (Ic01d2) - Dodaliśmy obsługę
classDiscriminator
iclassDiscriminatorMode
wSavedStateConfig
. (I69b66, b/395104517)
Zmiany w interfejsie API
- Dodaj parametr
SavedStateConfig
do delegatówsaved()
(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 przypadkuMutableStateFlowSerializer
iMutableStateSerializer
(I90953) - Dodawanie
contentDeepToString
doSavedStateReader
(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
dosavedstate-compose
zlifecycle-viewmodel-compose
, co umożliwia korzystanie z interfejsów SavedState Serialization API zMutableState
w Compose. (I4f690, b/378895074)
Zmiany w interfejsie API
- Dodaj funkcję fabryczną, aby utworzyć
SavedState
z istniejącegoSavedState
. (I39f9a) - Dodaliśmy obsługę właściwości
Array<SavedState>
iList<SavedState>
wandroidx.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 serializacjikotlinx.coroutines.flow.MutableStateFlow
. (I6a892, b/378895070)
Zmiany w interfejsie API
- Zastąpienie przeciążonych funkcji delegata
SavedStateRegistryOwner.saved()
parametrami domyślnymi (Icd1c1) - Uczyń
JavaSerializableSerializer
iParcelableSerializer
abstrakcyjnymi (I268f6) - Usuń ogólny kod
T : CharSequence
z witrynyCharSequenceSerializer
(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 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.
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ć wSavedState
za pomocą metodencodeToSavedState
idecodeFromSavedState
. Zwrócony obiektSavedState
to zwykły obiektBundle
na 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@Serializable
wSavedStateRegistryOwner
(np.ComponentActivity
itp.) i automatycznie przywracać te klasy po zakończeniu i ponownym utworzeniu procesu.Fragment
Pamiętaj, żesaved
delegat jest leniwy i nie wywołainit
lambdy 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
saved
dlaSavedStateHandle
został dodany w cyklu życia2.9.0-alpha07
.
Zmiany w interfejsie API
- Dodaj
toMap
doSavedState
, aby można było przekształcić dowolny elementSavedState
w zwykły elementMap
(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
iisNull
do SavedState KMP. (Iea71d, b/334076622) - Dodaj dodatkowe
savedState
parametry fabryczne obsługujące początkowyMap<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 symboleSavedStateReader
iSavedStateWriter
, które umożliwiają modyfikowanie stanu do zapisania. Na AndroidzieSavedState
to alias typuBundle
, który zapewnia zgodność binarną i ułatwia migrację istniejących interfejsów API do wspólnego zestawu źródeł. Na innych platformachSavedState
to 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
SavedStateRegistry
iSavedStateRegistryController
są teraz zgodne z KMP. (Id7bb8, b/334076622)- Usługi
SavedState
,SavedStateWriter
iSavedStateReader
są teraz zgodne z platformą 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 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.1
i androidx.savedstate:savedstate-ktx:1.2.1
zostały opublikowane. Wersja 1.2.1 zawiera te zmiany.
Aktualizacje zależności
SavedState
zależy teraz od cyklu życia2.6.1
. (c1f621)
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 opublikowane. Wersja 1.2.0 zawiera te zmiany.
Ważne zmiany od wersji 1.1.0
SavedStateRegistryController
umożliwia teraz wcześniejsze dołączanieSavedStateRegistry
za pomocąperformAttach()
.- Możesz teraz odzyskać wcześniej zarejestrowany
SavedStateProvider
zSavedStateRegistry
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 funkcjigetSavedStateRegistry()
. - 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 wView
wandroidx.savedstate.setViewTreeSavedStateRegistryOwner
iandroidx.savedstate.findViewTreeSavedStateRegistryOwner
, aby ustawić i znaleźć wcześniej ustawionego właściciela. Zastępuje on interfejs APIsavedstate-ktx
usługifindViewTreeSavedStateRegistryOwner
.
- W przypadku
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-rc01
i androidx.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 wSavedStateRegistryController
. (Iefc95, b/228887344)
Wersja 1.2.0-beta01
20 kwietnia 2022 r.
androidx.savedstate:savedstate:1.2.0-beta01
i androidx.savedstate:savedstate-ktx:1.2.0-beta01
zostały opublikowane. Wersja 1.2.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Klasy
SavedStateRegistry
iViewTreeSavedStateRegistryOwner
zostały przepisane w Kotlinie. W przypadkuViewTreeSavedStateRegistryOwner
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 wView
wandroidx.savedstate.setViewTreeSavedStateRegistryOwner
iandroidx.savedstate.findViewTreeSavedStateRegistryOwner
, aby ustawić i znaleźć wcześniej ustawionego właściciela. Zastępuje on interfejs APIsavedstate-ktx
usł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
androidx.savedstate:savedstate:1.2.0-alpha02
i androidx.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
SavedStateProvider
zSavedStateRegistry
za pomocągetSavedStateProvider()
. (I7ea47, b/215406268)
Zmiany w interfejsie API
- Klasy
SavedStateRegistryOwner
,SavedStateRegistryController
iRecreator
zostały przepisane w języku Kotlin. W przypadkuSavedStateRegistryOwner
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 funkcjigetSavedStateRegistry()
. 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-alpha01
i androidx.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łączenieSavedStateRegistry
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.0
i androidx.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 interfejsViewTreeSavedStateRegistryOwner.get(View)
API umożliwia pobieranie konteneraSavedStateRegistry
na podstawie instancjiView
. Aby prawidłowo wypełnić te pola, musisz przejść na Activity1.2.0
, Fragment1.3.0
i AppCompat1.3.0-alpha01
lub nowsze.savedstate-ktx
artefakt: dodaliśmy nowysavedstate-ktx
artefakt z rozszerzeniem Kotlin do pracy zViewTreeSavedStateRegistryOwner
.findViewTreeSavedStateRegistryOwner()
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.
androidx.savedstate:savedstate:1.1.0-alpha01
i androidx.savedstate:savedstate-ktx:1.1.0-alpha01
zostały opublikowane. Wersja 1.1.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Nowy interfejs
ViewTreeSavedStateRegistryOwner.get(View)
API umożliwia pobieranie konteneraSavedStateRegistry
na podstawie instancjiView
. Aby poprawnie wypełnić te pola, musisz przejść na Activity1.2.0-alpha05
, Fragment1.3.0-alpha05
i AppCompat1.3.0-alpha01
. (aosp/1298679) - Dodaliśmy nowy artefakt
savedstate-ktx
z rozszerzeniemfindViewTreeSavedStateRegistryOwner()
Kotlin do pracy zViewTreeSavedStateRegistryOwner
. (aosp/1299434)
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-bundle
i androidx.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 metodaAutoRecreated.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 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ą 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.