Savedstate
Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
30 października 2024 r. | 1.2.1 | - | - | 1.3.0-alpha04 |
Deklarowanie zależności
Aby dodać zależność od SavedState, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Groovy
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.2.1" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.2.1" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.2.1") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.2.1") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.3
Wersja 1.3.0-alpha04
30 października 2024 r.
Usługa androidx.savedstate:savedstate-*:1.3.0-alpha04
została zwolniona. Wersja 1.3.0-alpha04 zawiera te komity.
Zmiany w interfejsie API
- KMP SavedState obsługuje teraz Char. (I9ac2f, b/334076622)
- Dodaj
putNull
iisNull
do platformy KMP SavedState. (IEA71d, b/334076622) - Dodaj dodatkowe parametry fabryczne
savedState
obsługujące początkowyMap<String, Any>
(I9b37d, b/334076622). - KMP SavedState obsługuje teraz porównanie
contentDeepEquals
. (Ia515c, b/334076622) - KMP SavedState obsługuje teraz Long. (I4c180, b/334076622)
Wersja 1.3.0-alpha03
16 października 2024 r.
Wersja androidx.savedstate:savedstate-*:1.3.0-alpha03
została udostępniona bez istotnych zmian. Wersja 1.3.0-alfa03 zawiera te zatwierdzenia.
Wersja 1.3.0-alpha02
2 października 2024 r.
androidx.savedstate:savedstate-*:1.3.0-alpha02
został zwolniony. Wersja 1.3.0-alpha02 zawiera te komity.
Kotlin Multiplatform
- Moduł
SavedState
jest teraz zgodny z KMP. Obsługiwane są teraz platformy Android, iOS, Linux, Mac i JVM. (I26305, b/334076622)
Nowe funkcje
- Wprowadź typ
SavedState
jako abstrakcję, aby zapewnić spójny sposób zapisywania i przywracania stanu aplikacji w KMP. Zawiera onSavedStateReader
iSavedStateWriter
do modyfikowania stanu, który ma zostać zapisany. W AndroidzieSavedState
jest aliasem typuBundle
, który zapewnia zgodność plików binarnych i ułatwia migrację istniejących interfejsów API do wspólnego zestawu źródłowego. Na innych 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 KPM. (Id7bb8, b/334076622)- Funkcje
SavedState
,SavedStateWriter
iSavedStateReader
są teraz zgodne z KMP. (I26305, b/334076622)
Wersja 1.3.0-alpha01
7 sierpnia 2024 r.
androidx.savedstate:savedstate:1.3.0-alpha01
i androidx.savedstate:savedstate-ktx:1.3.0-alpha01
zostały udostępnione. Wersja 1.3.0-alfa01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Rozszerzenia
savedstate-ktx
w języku Kotlin zostały przeniesione do podstawowego modułu zapisanych stanów. (I1cc18, b/274803094)
Uwaga
- Zaktualizuj
compileSdk
do 35 (5dc41be)
Wersja 1.2.1
Wersja 1.2.1
22 marca 2023 r.
androidx.savedstate:savedstate:1.2.1
i androidx.savedstate:savedstate-ktx:1.2.1
są dostępne. Wersja 1.2.1 zawiera te zatwierdzenia.
Aktualizacje zależności
- Funkcja
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 udostępnione. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
SavedStateRegistryController
umożliwia teraz wcześniejsze dołączanieSavedStateRegistry
za pomocąperformAttach()
.- Możesz teraz pobrać wcześniej zarejestrowany
SavedStateProvider
zSavedStateRegistry
za pomocągetSavedStateProvider()
. - Biblioteka
SavedState
została przepisana w języku Kotlin.- W przypadku
SavedStateRegistryOwner
jest to zmiana niezgodna ze źródłem w klasach napisanych w Kotlinie – teraz musisz zastąpić właściwośćsavedStateRegistry
, a nie stosować poprzedniej funkcjigetSavedStateRegistry()
. - W przypadku
ViewTreeSavedStateRegistryOwner
jest to zmiana niezgodna ze źródłem w przypadku klas napisanych w Kotlinie. Aby ustawić i znaleźć wcześniej ustawionego właściciela, musisz teraz bezpośrednio zaimportować i użyć metod rozszerzenia Kotlina wView
klasyandroidx.savedstate.setViewTreeSavedStateRegistryOwner
iandroidx.savedstate.findViewTreeSavedStateRegistryOwner
. Zastępuje to interfejs APIsavedstate-ktx
interfejsufindViewTreeSavedStateRegistryOwner
.
- 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
są dostępne. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Zmiany w dokumentacji
- Dokumenty
SavedStateRegistryOwner
Kdocs zostały zaktualizowane, aby wyjaśnić obowiązki i umowę właściciela dotyczącą tego, jak powinien on implementować interfejs lub kiedy powinien wywoływać metody 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
są dostępne. Wersja 1.2.0-beta01 zawiera te commity.
Zmiany w interfejsie API
- Zajęcia
SavedStateRegistry
iViewTreeSavedStateRegistryOwner
zostały przepisane w Kotlin. W przypadkuViewTreeSavedStateRegistryOwner
jest to niekompatybilna zmiana źródła w przypadku klas zapisanych w Kotlin. Musisz teraz bezpośrednio zaimportować i zastosować metody rozszerzenia Kotlin w systemachView
zandroidx.savedstate.setViewTreeSavedStateRegistryOwner
iandroidx.savedstate.findViewTreeSavedStateRegistryOwner
, aby ustawić i znaleźć uprzedniego właściciela. Zastępuje on interfejs APIsavedstate-ktx
usługifindViewTreeSavedStateRegistryOwner
. Jest on zgodny z binarnymi implementacjami w języku Java i nadal zgodny ze źródłami. (b/220191285)
Wersja 1.2.0-alfa02
6 kwietnia 2022 roku
androidx.savedstate:savedstate:1.2.0-alpha02
i androidx.savedstate:savedstate-ktx:1.2.0-alpha02
są dostępne. Wersja 1.2.0-alpha02 zawiera te commity.
Nowe funkcje
- Możesz teraz pobrać wcześniej zarejestrowany
SavedStateProvider
zSavedStateRegistry
za pomocągetSavedStateProvider()
. (I7ea47, b/215406268)
Zmiany w interfejsie API
- Klasy
SavedStateRegistryOwner
,SavedStateRegistryController
iRecreator
zostały przepisane w Kotlinie. W przypadkuSavedStateRegistryOwner
jest to niekompatybilna zmiana źródła dla klas zapisanych w Kotlin. Musisz teraz zastąpić właściwośćsavedStateRegistry
zamiast implementować poprzednią funkcjęgetSavedStateRegistry()
. Jest to wersja zgodna z binarną i źródłową implementacji napisanych w języku programowania Java. (b/220191285)
Wersja 1.2.0-alpha01
26 stycznia 2022 r.
androidx.savedstate:savedstate:1.2.0-alpha01
i androidx.savedstate:savedstate-ktx:1.2.0-alpha01
zostały udostępnione. Wersja 1.2.0-alpha01 zawiera te commity.
Nowe funkcje
SavedStateRegistryController
umożliwia teraz wczesne załączanieSavedStateRegistry
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
są dostępne. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.0.0
- Interfejs API
ViewTreeSavedStateRegistryOwner
: nowy interfejs APIViewTreeSavedStateRegistryOwner.get(View)
umożliwia pobieranie plikuSavedStateRegistry
zawierającego dane z instancjiView
. Aby to zrobić, musisz uaktualnić wersję Activity1.2.0
, Fragment1.3.0
i AppCompat1.3.0-alpha01
lub nowszą wersją. - Element
savedstate-ktx
: dodaliśmy nowy elementsavedstate-ktx
z rozszerzeniem KotlinafindViewTreeSavedStateRegistryOwner()
do pracy zViewTreeSavedStateRegistryOwner
.
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
są publikowane bez zmian od 1.1.0-beta01
. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Wersja 1.1.0-beta01
1 października 2020 roku
androidx.savedstate:savedstate:1.1.0-beta01
i androidx.savedstate:savedstate-ktx:1.1.0-beta01
są publikowane bez zmian od 1.1.0-alpha01
. Wersja 1.1.0-beta01 zawiera te commity.
Wersja 1.1.0-alpha01
20 maja 2020 r.
androidx.savedstate:savedstate:1.1.0-alpha01
i androidx.savedstate:savedstate-ktx:1.1.0-alpha01
są dostępne. Wersja 1.1.0-alpha01 zawiera te commity.
Nowe funkcje
- Nowy interfejs API
ViewTreeSavedStateRegistryOwner.get(View)
umożliwia pobranieSavedStateRegistry
na podstawie wystąpieniaView
. Aby prawidłowo wypełnić te pola, musisz przejść na Aktywność1.2.0-alpha05
, Fragment1.3.0-alpha05
i Kompatybilność z aplikacjami1.3.0-alpha01
. (aosp/1298679) - Dodano nowy artefakt
savedstate-ktx
z rozszerzeniem KotlinafindViewTreeSavedStateRegistryOwner()
do pracy zViewTreeSavedStateRegistryOwner
. (Aosp/1299434).
Wersja 1.0.0
Wersja 1.0.0
5 września 2019 r.
androidx.savedstate:savedstate:1.0.0
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Najważniejsze funkcje SavedState 1.0.0
androidx.savedstate
została oznaczona jako wersja stabilna. To zestaw interfejsów API, które umożliwiają deweloperom dołączanie komponentów do procesu przywracania / zapisywania stanu instancji. Głównym punktem wejścia interfejsu API jest metoda SavedStateRegistry
, która umożliwia odzyskiwanie wcześniej zapisanych stanów za pomocą metody consumeRestoredStateForKey
i rejestrowanie wywołania zwrotnego registerSavedStateProvider
, aby udostępnić zapisany stan, gdy system go zażąda.
Wersja 1.0.0-rc01
2 lipca 2019 r.
androidx.savedstate:savedstate:1.0.0-rc01
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Poprawki błędów.
- Naprawiono nieprawidłową regułę proguard (b/132655499)
Wersja 1.0.0-beta01
7 maja 2019 r.
androidx.savedstate:savedstate:1.0.0-beta01
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Wersja 1.0.0-alpha02
13 marca 2019 r.
Usługa androidx.savedstate:savedstate:1.0.0-alpha02
została zwolniona. androidx.savedstate:savedstate
łączy artefakty androidx.savedstate:savedstate-bundle
i androidx.savedstate:savedstate-common
w jeden artefakt, ponieważ podjęliśmy decyzję o uproszczeniu infrastruktury zapisanego stanu i usunięciu elementów ogólnych z SavedStateRegistry
. Nie ma więc potrzeby tworzenia osobnych modułów.
Pełną listę zatwierdzeń zawartych w tej wersji znajdziesz tutaj.
Nowe funkcje
- Dodano użytkownika
SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz )
Podana klasa zostanie uruchomiona, a metodaAutoRecreated.onRecreated
zostanie wykonana po ponownym uruchomieniu komponentu właściciela.
Zmiany w interfejsie API
- Leki generyczne usunięte z:
SavedStateRegistry<T>
- AbstractSavedStateRegistry & BundlableSavedStateRegistry zostały usunięte. Zamiast nich używaj prostej
SavedStateRegistry
. - Zmieniono nazwę z
BundleSavedStateRegistryOwner
naSavedStateRegistryOwner
.
Wersja 1.0.0-alpha01
17 grudnia 2018 r.
To jest pierwsza wersja aplikacji SavedState
.
Nowe funkcje
androidx.savedstate
to nowy zestaw interfejsów API w wersji alfa, który umożliwia programistom dołączanie komponentów do procesu przywracania / zapisywania instancjiState. Głównym punktem wejścia interfejsu API jest SavedStateRegistry<T>
, który umożliwia odzyskiwanie wcześniej zapisanego stanu za pomocą consumeRestoredStateForKey
i rejestrowanie wywołania zwrotnego registerSavedStateProvider
w celu udostępnienia zapisanego stanu, gdy system go zażąda.