Savedstate
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 11 במרץ 2026 | 1.4.0 | - | - | 1.5.0-alpha01 |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-SavedState, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
מגניב
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") }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גירסה 1.5
גרסה 1.5.0-alpha01
11 במרץ 2026
androidx.savedstate:savedstate-*:1.5.0-alpha01 מופץ. גרסה 1.5.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- הפעלת סריאליזציה גנרית לאובייקטים של
SavedState, שמאפשרת לקודד ולפענח אותם באמצעות פורמטים סטנדרטיים כמו CBOR או JSON בכל הפלטפורמות. (Iafda4, b/425919375)
שינויים ב-API
- הוספנו פונקציות הרחבה
putKotlinSerializableו-getKotlinSerializableל-SavedStateWriterול-SavedStateReaderכדי לאפשר אחסון ואחזור ישירים של אובייקטים מסוג Kotlin Serializable באמצעות מפתחות, וכך לייעל את השילוב עם ממשקי API שלSavedState. (Iba02e) - הוספנו פונקציות factory ל-
LifecycleOwner, ל-ViewModelStoreOwnerול-SavedStateRegistryOwnerכדי לצמצם את קוד ה-boilerplate כשיוצרים רכיבי בעלים בהתאמה אישית. (I9682c) - הפעלת השמירה והשחזור של
SnapshotStateSet(שנוצר באמצעותmutableStateSetOf()) באמצעותrememberSerializable. עכשיו אפשר להשתמש ב-SnapshotStateSetב-rememberSerializableבלי להגדיר שומר מסך מותאם אישית. (I9a4ed, b/449498367)
גרסה 1.4
גרסה 1.4.0
5 בנובמבר 2025
androidx.savedstate:savedstate-*:1.4.0 מופץ. גרסה 1.4.0 מכילה את השמירות האלה.
גרסה 1.4.0-rc01
22 באוקטובר 2025
androidx.savedstate:savedstate-*:1.4.0-rc01 יוצא ללא שינויים מאז גרסה 1.4.0-beta01. גרסה 1.4.0-rc01 מכילה את השמירות האלה.
גרסה 1.4.0-beta01
8 באוקטובר 2025
הגרסה androidx.savedstate:savedstate-*:1.4.0-beta01 הושקה ללא שינויים משמעותיים מאז גרסת האלפא האחרונה. גרסה 1.4.0-beta01 מכילה את השמירות האלה.
גרסה 1.4.0-alpha03
27 באוגוסט 2025
androidx.savedstate:savedstate-*:1.4.0-alpha03 מופץ. גרסה 1.4.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו תמיכה בסוגים שניתן להגדיר כ-nullable ב-
encodeToSavedStateוב-decodeFromSavedState. (I79062, b/439527454) - עדכון של Compose לגרסה 1.9.0. (I2b9de)
גרסה 1.4.0-alpha02
13 באוגוסט 2025
androidx.savedstate:savedstate-*:1.4.0-alpha02 מופץ. גרסה 1.4.0-alpha02 מכילה את השמירות האלה.
גרסה 1.4.0-alpha01
30 ביולי 2025
androidx.savedstate:savedstate-*:1.4.0-alpha01 מופץ. גרסה 1.4.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו תמיכה מקורית בסוגים שניתן להגדיר כ-nullable ב-
SavedStateRegistryOwner.saved, כדי לפשט את השמירה והשחזור של מאפיינים שניתן להגדיר כ-nullable. (Ia632, b/421325690)
גרסה 1.3
גרסה 1.3.3
17 בספטמבר 2025
androidx.savedstate:savedstate-*:1.3.3 מופץ. גרסה 1.3.3 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה שגיאה שקשורה לתוסף Compose Compiler שלא הוחל, שגרמה לשבירה של ארטיפקטים של
SavedStateKMP. (Id2290, b/443965665)
גרסה 1.3.2
27 באוגוסט 2025
androidx.savedstate:savedstate-*:1.3.2 מופץ. גרסה 1.3.2 מכילה את השמירות האלה.
תכונות חדשות
- הוספת יעדים חדשים של Kotlin Multiplatform (KMP) לארטיפקט SavedState
*-compose. מחזור החיים תומך עכשיו בפלטפורמות הבאות: JVM (Android ומחשבים), Native (Linux, iOS, watchOS, macOS, MinGW) ו-Web (JavaScript, WasmJS). (/Idcf26)
גרסה 1.3.1
16 ביולי 2025
androidx.savedstate:savedstate-*:1.3.1 מופץ. גרסה 1.3.1 מכילה את השמירות האלה.
תיקוני באגים
- מוסיפים את כל יעדי ה-KMP שנתמכים על ידי הערות ל-
SavedStateartifacts. - נוספו יעדים חדשים של Kotlin Multiplatform (KMP) לארטיפקטים של
SavedState. SavedStateתומך עכשיו בפלטפורמות הבאות: JVM (Android ומחשב), Native (Linux, iOS, watchOS, macOS, MinGW) ו-Web (JavaScript, WasmJS). שימו לב שלא נוספו יעדי KMP חדשים לארטיפקטים של*-compose, כי זה תלוי בגרסה היציבה של Compose 1.9. (I062f4).
גרסה 1.3.0
7 במאי 2025
androidx.savedstate:savedstate-*:1.3.0 מופץ. גרסה 1.3.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.2.0
- העברנו את
LocalSavedStateRegistryOwnerמ-Compose UI למודול החדשsavedstate-composeכדי שאפשר יהיה להשתמש בממשקי העזרה מבוססי-Compose מחוץ ל-Compose UI. תמיד צריך להשתמש בשיטה הזו כשמשתמשים ב-Compose UI1.9.0-alpha02ומעלה, אבל היא תואמת לאחור כך שאפשר להשתמש בה בכל הגרסאות של Compose. - התוספים של
savedstate-ktxkotlin הועברו עכשיו למודול הבסיסי של savedstate. - עכשיו אפשר לפתור מקרים של
SavedStateRegistryOwnerשאוחזרו באמצעותfindViewTreeSavedStateRegistryOwnerדרך הורים לא רציפים של תצוגה, כמוViewOverlay. מידע נוסף על הורים של תצוגות לא רציפות זמין בהערות הגרסה של ליבת או במאמרי העזרה בכתובתViewTree.setViewTreeDisjointParent.
Kotlin Multiplatform
- מודול
SavedStateתואם עכשיו ל-KMP. הפלטפורמות הנתמכות כוללות עכשיו את Android, iOS, Linux, Mac וסביבות שולחן עבודה של JVM. הוספנו את סוג הנתונים
SavedStateopaque כהפשטה כדי לספק דרך עקבית לשמירה ולשחזור של מצב האפליקציה ב-KMP. הוא כולל אתSavedStateReaderו-SavedStateWriterלשינוי המצב שצריך לשמור. ב-Android, SavedStateהוא כינוי סוג ל-Bundle, שמבטיח תאימות בינארית ומקל על העברת ממשקי API קיימים לקבוצת מקור משותפת. בפלטפורמות אחרות,SavedStateהוא מופע של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") }
תמיכה ב-KotlinX Serialization
SavedStateכולל עכשיו תמיכה ב-KotlinX Serialization. אפשר להמיר כיתה עם ההערה@Serializableל-SavedStateבאמצעות השיטותencodeToSavedStateו-decodeFromSavedState. הערךSavedStateשמוחזר הואBundleרגיל ב-Android, ואפשר להשתמש בו בכל API שמקבלSavedState.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) }רוב הסוגים (כמו סוגים פרימיטיביים) נתמכים ישירות בלי צורך בהגדרה, אבל אפשר למצוא סדרות נוספות שאפשר להשתמש בהן עם
@Serializable(with = ___:class)בחבילהandroidx.savedstate.serialization.serializersבמודולsavedstateובחבילהandroidx.savedstate.compose.serialization.serializersבמודולsavedstate-compose.הוספנו גם את
saved, נציג מאפיינים עצלן, כדי לאפשר אחסון קל של מחלקות@Serializableב-SavedStateRegistryOwner(לדוגמה,ComponentActivity,Fragmentוכו') ושחזור אוטומטי של המחלקות האלה לאחר סיום התהליך ויצירה מחדש. שימו לב שהפונקציהsaveddelegate היא עצלה, והיא לא תפעיל את פונקציית ה-lambdainitאו תשמור משהו ב-SavedStateRegistryעד שתהיה אליה גישה.@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") } }בנוסף, נוסף מאפיין דומה של
savedבעלים מואצלים של נכסSavedStateHandleבמחזור החיים2.9.0.
גרסה 1.3.0-rc01
23 באפריל 2025
androidx.savedstate:savedstate-*:1.3.0-rc01 מופץ. גרסה 1.3.0-rc01 מכילה את השמירות האלה.
גרסה 1.3.0-beta01
9 באפריל 2025
androidx.savedstate:savedstate-*:1.3.0-beta01 מופץ. גרסה 1.3.0-beta01 מכילה את השמירות האלה.
עדכונים של יחסי תלות
- הספרייה הזו מטרגטת עכשיו את רמת השפה Kotlin 2.0 ונדרשת KGP 2.0.0 או גרסה חדשה יותר. (Idb6b5)
גרסה 1.3.0-alpha11
26 במרץ 2025
הגרסה androidx.savedstate:savedstate-*:1.3.0-alpha11 הושקה ללא שינויים משמעותיים שגלויים לציבור. גרסה 1.3.0-alpha11 מכילה את השמירות האלה.
גרסה 1.3.0-alpha10
12 במרץ 2025
androidx.savedstate:savedstate-*:1.3.0-alpha10 מופץ. גרסה 1.3.0-alpha10 מכילה את השמירות האלה.
תכונות חדשות
- הוספת וריאציות של שיטות לא מוחשיות לאוספים של
getב-SavedStateReader. (I0b641, b/399820614) - הוספת
encodeDefaultsל-SavedStateConfiguration, כדי לאפשר התאמה אישית של קידוד מאפיינים עם ערכי ברירת מחדל. (I893cc, b/395104517) - מוסיפים את
SnapshotStateMapSerializerלתמיכה ב-mutableStateMapOf. (Ie6f19, b/378895074) - מוסיפים את
SnapshotStateListSerializerלתמיכה ב-mutableStateListOf. (I4d888, b/378895074) - מוסיפים
getOrNullשיטות חלופיות לוריאציות שלSavedStateReader.get. השיטות האלה יבצעו המרה אוטומטית של ערכים פרימיטיביים לאובייקטים. (I6228c, b/399820614)
שינויים ב-API
- הסרת
getOrElseמהחשבוןSavedStateReaderלטובתgetOrNull() ?: else(). (I87317, b/399820614) - הסרת שינוי
inlineמהשיטותSavedStateReaderו-SavedStateWriter. (If2a02, b/399820614) - הסרה של סדרות (serializers) מובנות של רשימות ומערכים ספציפיים ל-Android מ-API ציבורי (Ida293)
- החלפה של
SparseParcelableArraySerializerב-SparseArraySerializer(I91de8) - כדי שכל הפונקציות
SavedStateReader.getיתנהגו באופן עקבי, הן יחזירו שגיאה אם סוג הערך לא תואם לסוג ההחזרה (I78c4a, b/399317598) - שינוי השם של
SavedState*DelegatesלSavedState*Delegate. (I8589b, b/399629301) - שינוי השם של
SavedStateConfigלSavedStateConfiguration. (I043a5, b/399629301)
גרסה 1.3.0-alpha09
26 בפברואר 2025
androidx.savedstate:savedstate-*:1.3.0-alpha09 מופץ. גרסה 1.3.0-alpha09 מכילה את השמירות האלה.
תכונות חדשות
- הוספת חזרה לערך ברירת מחדל לסוגים מובנים, כדי להבטיח שכל הסוגים שנתמכים על ידי
Bundleיוכלו לשמש עםencodeAsSavedState/decodeFromSavedStateכברירת מחדל, או למאפיינים במחלקות@Serializable, באמצעות ההערה@Contextual. (Ic01d2) - כולל תמיכה ב-
classDiscriminatorוב-classDiscriminatorModeב-SavedStateConfig. (I69b66, b/395104517)
שינויים ב-API
- הוספת הפרמטר
SavedStateConfigלנציגיsaved()(I39b3a) - הופך סדרות מובנות לאובייקטים מסוג singleton (Ifeee4)
- מאפייני
SavedStateConfigהם עכשיו ציבוריים, כך שמודולים אחרים יכולים להשתמש בהגדרות האלה. (Ie5f49, b/378897438) - תמיכה ב-
@Serializer(with = ...)עבורMutableStateFlowSerializerו-MutableStateSerializer(I90953) - הוספת
contentDeepToStringאלSavedStateReader(I14d10)
גרסה 1.3.0-alpha08
12 בפברואר 2025
androidx.savedstate:savedstate-*:1.3.0-alpha08 מופץ. גרסה 1.3.0-alpha08 מכילה את השמירות האלה.
תכונות חדשות
- העברנו את
MutableStateSerializerאלsavedstate-composeמ-lifecycle-viewmodel-compose, כך שתוכלו להשתמש בממשקי ה-API של SavedState Serialization עםMutableStateשל Compose. (I4f690, b/378895074)
שינויים ב-API
- מוסיפים פונקציית יצירה כדי ליצור
SavedStateמSavedStateקיים. (I39f9a) - הוספנו תמיכה ב-
Array<SavedState>וב-List<SavedState>ב-androidx.savedstate. (Idd8a5) - הוספת פרמטר אופציונלי
SavedStateConfigלקידוד/פענוח של SavedState (I6c4c0)
גרסה 1.3.0-alpha07
29 בינואר 2025
androidx.savedstate:savedstate-*:1.3.0-alpha07 מופץ. גרסה 1.3.0-alpha07 מכילה את השמירות האלה.
תכונות חדשות
- מוסיפים
MutableStateFlowSerializerכדי ליצור סדרות שלkotlinx.coroutines.flow.MutableStateFlow. (I6a892, b/378895070)
שינויים ב-API
- החלפת פונקציות מואצלות בעלות עומס יתר
SavedStateRegistryOwner.saved()בפרמטרים שמוגדרים כברירת מחדל (Icd1c1) - יצירת תקציר של
JavaSerializableSerializerושלParcelableSerializer(I268f6) - הסרת
T : CharSequenceכללי מהחשבוןCharSequenceSerializer(Ib40bd)
גרסה 1.3.0-alpha06
11 בדצמבר 2024
androidx.savedstate:savedstate-*:1.3.0-alpha06 מופץ. גרסה 1.3.0-alpha06 מכילה את השמירות האלה.
תכונות חדשות
-
SavedStateKMP תומך עכשיו ב:IBinder, Size, SizeF, Array<Parcelable>, SparseArray<Parcelable>ו-Serializable (Android). (I1ba94, b/334076622) - מוסיפים מופעים של
KSerializerשאפשר להשתמש בהם כדי לקודד ולפענח סוגי Java ו-Android שנתמכים על ידי Bundle, על ידי סימון השדה הרלוונטי בכיתה באמצעות@Serializable(with = ParcelableSerializer::class). (I8c10f, I28caf, b/376026712) - עכשיו אפשר לפתור מקרים של
SavedStateRegistryOwnerשאוחזרו באמצעותfindViewTreeSavedStateRegistryOwnerדרך הורים לא רציפים של תצוגה, כמוViewOverlay. מידע נוסף על הורים של תצוגות לא רציפות זמין בהערות הגרסה של ליבת או במאמרי העזרה בכתובתViewTree.setViewTreeDisjointParent. (Iccb33)
שינויים ב-API
- שיפור העקביות של שמות החבילות והארגון שלהן בהתאם ל-
SavedStateRegistryOwnerDelegate(I8c135, b/376026744)
גרסה 1.3.0-alpha05
13 בנובמבר 2024
androidx.savedstate:savedstate-*:1.3.0-alpha05 מופץ. גרסה 1.3.0-alpha05 מכילה את השמירות האלה.
תמיכה ב-KotlinX Serialization
SavedStateכולל עכשיו תמיכה ב-KotlinX Serialization. אפשר להמיר כיתה עם ההערה@Serializableל-SavedStateבאמצעות השיטותencodeToSavedStateו-decodeFromSavedState. הערךSavedStateשמוחזר הואBundleרגיל ב-Android, ואפשר להשתמש בו בכל API שמקבלSavedState.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) }הוספנו גם את
saved, נציג מאפיינים עצלן, כדי לאפשר אחסון קל של מחלקות@Serializableב-SavedStateRegistryOwner(לדוגמה,ComponentActivity,Fragmentוכו') ושחזור אוטומטי של המחלקות האלה לאחר סיום התהליך ויצירה מחדש. שימו לב שהפונקציהsaveddelegate היא עצלה, והיא לא תפעיל את פונקציית ה-lambdainitאו תשמור משהו ב-SavedStateRegistryעד שתהיה אליה גישה. (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") } }בנוסף, נוסף מאפיין דומה של
savedבעלים מואצלים של נכסSavedStateHandleבמחזור החיים2.9.0-alpha07.
שינויים ב-API
- הוספת
toMapאלSavedState, כך שכלSavedStateיומר לMapרגיל (עותק שטחי). (I487b9, b/334076622) -
SavedStateKMP תומך עכשיו במערכים. (Ic0552, b/334076622)
גרסה 1.3.0-alpha04
30 באוקטובר 2024
androidx.savedstate:savedstate-*:1.3.0-alpha04 מופץ. גרסה 1.3.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- SavedState KMP תומך עכשיו ב-Char. (I9ac2f, b/334076622)
- הוספה של
putNullו-isNullל-SavedState KMP. (Iea71d, b/334076622) - הוספת פרמטרים נוספים של
savedStateיצרן שתומכים ב-Map<String, Any>ראשוני (I9b37d, b/334076622) - ספריית SavedState KMP תומכת עכשיו בהשוואה בין
contentDeepEquals. (Ia515c, b/334076622) - SavedState KMP תומך עכשיו ב-Long. (I4c180, b/334076622)
גרסה 1.3.0-alpha03
16 באוקטובר 2024
הגרסה androidx.savedstate:savedstate-*:1.3.0-alpha03 הושקה ללא שינויים משמעותיים. גרסה 1.3.0-alpha03 מכילה את השמירות האלה.
גרסה 1.3.0-alpha02
2 באוקטובר 2024
androidx.savedstate:savedstate-*:1.3.0-alpha02 מופץ. גרסה 1.3.0-alpha02 מכילה את השמירות האלה.
Kotlin Multiplatform
- מודול
SavedStateתואם עכשיו ל-KMP. הפלטפורמות הנתמכות כוללות עכשיו את Android, iOS, Linux, Mac וסביבות שולחן עבודה של JVM. (I26305, b/334076622)
תכונות חדשות
- הוספנו את סוג הנתונים
SavedStateopaque כהפשטה כדי לספק דרך עקבית לשמירה ולשחזור של מצב האפליקציה ב-KMP. הוא כולל אתSavedStateReaderו-SavedStateWriterלשינוי המצב שצריך לשמור. ב-Android, SavedStateהוא כינוי סוג ל-Bundle, שמבטיח תאימות בינארית ומקל על העברת ממשקי API קיימים לקבוצת מקור משותפת. בפלטפורמות אחרות,SavedStateהוא מופע של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")
}
שינויים ב-API
-
SavedStateRegistryו-SavedStateRegistryControllerתואמים עכשיו ל-KMP. (Id7bb8, b/334076622) - האפליקציות
SavedState, SavedStateWriterו-SavedStateReaderתואמות עכשיו ל-KMP. (I26305, b/334076622)
גרסה 1.3.0-alpha01
7 באוגוסט 2024
androidx.savedstate:savedstate:1.3.0-alpha01 וגם androidx.savedstate:savedstate-ktx:1.3.0-alpha01 מופצים. גרסה 1.3.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- התוספים של
savedstate-ktxkotlin הועברו עכשיו למודול הבסיסי של savedstate. (I1cc18, b/274803094)
הערה
- עדכון של
compileSdkל-35 (5dc41be)
גרסה 1.2.1
גרסה 1.2.1
22 במרץ 2023
androidx.savedstate:savedstate:1.2.1 וגם androidx.savedstate:savedstate-ktx:1.2.1 מופצים. גרסה 1.2.1 מכילה את השמירות האלה.
עדכונים של יחסי תלות
-
SavedStateתלוי עכשיו ב-Lifecycle2.6.1. (c1f621)
גרסה 1.2.0
גרסה 1.2.0
29 ביוני 2022
androidx.savedstate:savedstate:1.2.0 וגם androidx.savedstate:savedstate-ktx:1.2.0 מופצים. גרסה 1.2.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.1.0
-
SavedStateRegistryControllerמאפשר עכשיו לצרף אתSavedStateRegistryמוקדם יותר באמצעותperformAttach(). - עכשיו אפשר לאחזר
SavedStateProviderשנרשם בעבר מSavedStateRegistryדרךgetSavedStateProvider(). - הספרייה
SavedStateנכתבה מחדש ב-Kotlin.- ב-
SavedStateRegistryOwner, זהו שינוי לא תואם למקור עבור המחלקות שנכתבו ב-Kotlin – עכשיו צריך לבטל את ההגדרה של המאפייןsavedStateRegistryבמקום להטמיע את הפונקציהgetSavedStateRegistry()הקודמת. - במקרה של
ViewTreeSavedStateRegistryOwner, מדובר בשינוי שגורם לאי-תאימות למקור עבור המחלקות שנכתבו ב-Kotlin. עכשיו צריך לייבא ישירות את שיטות ההרחבה של Kotlin ב-Viewשלandroidx.savedstate.setViewTreeSavedStateRegistryOwnerו-androidx.savedstate.findViewTreeSavedStateRegistryOwnerולהשתמש בהן כדי להגדיר ולמצוא בעלים שהוגדר בעבר. ה-API הזה מחליף אתsavedstate-ktxAPI שלfindViewTreeSavedStateRegistryOwner.
- ב-
שינויים בהתנהגות
-
SavedStateRegistryכבר לא שומר חבילה ריקה אם אין מצב לשמירה.
גרסה 1.2.0-rc01
11 במאי 2022
androidx.savedstate:savedstate:1.2.0-rc01 וגם androidx.savedstate:savedstate-ktx:1.2.0-rc01 מופצים. גרסה 1.2.0-rc01 מכילה את השמירות האלה.
שינויים במסמכי התיעוד
- המסמכים
SavedStateRegistryOwnerKdocs עודכנו כדי להבהיר את האחריות והחוזה של הבעלים לגבי אופן היישום של הממשק או מתי צריך להפעיל את ה-methods ב-SavedStateRegistryController. (Iefc95, b/228887344)
גרסה 1.2.0-beta01
20 באפריל 2022
androidx.savedstate:savedstate:1.2.0-beta01 וגם androidx.savedstate:savedstate-ktx:1.2.0-beta01 מופצים. גרסה 1.2.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- המחלקה
SavedStateRegistryוהמחלקהViewTreeSavedStateRegistryOwnerנכתבו מחדש ב-Kotlin. במקרה שלViewTreeSavedStateRegistryOwner, מדובר בשינוי שגורם לאי-תאימות למקור עבור המחלקות שנכתבו ב-Kotlin. עכשיו צריך לייבא ישירות את שיטות ההרחבה של Kotlin ב-Viewשלandroidx.savedstate.setViewTreeSavedStateRegistryOwnerו-androidx.savedstate.findViewTreeSavedStateRegistryOwnerולהשתמש בהן כדי להגדיר ולמצוא בעלים שהוגדר בעבר. ה-API הזה מחליף אתsavedstate-ktxAPI שלfindViewTreeSavedStateRegistryOwner. היא תואמת לקובץ בינארי ונשארת תואמת לקוד המקור להטמעות שנכתבו בשפת התכנות Java. (b/220191285)
גרסה 1.2.0-alpha02
6 באפריל 2022
androidx.savedstate:savedstate:1.2.0-alpha02 וגם androidx.savedstate:savedstate-ktx:1.2.0-alpha02 מופצים. גרסה 1.2.0-alpha02 מכילה את השמירות האלה.
תכונות חדשות
- עכשיו אפשר לאחזר
SavedStateProviderשנרשם בעבר מSavedStateRegistryדרךgetSavedStateProvider(). (I7ea47, b/215406268)
שינויים ב-API
- המחלקות
SavedStateRegistryOwner,SavedStateRegistryControllerו-Recreatorנכתבו מחדש ב-Kotlin. ב-SavedStateRegistryOwner, זהו שינוי לא תואם למקור עבור המחלקות שנכתבו ב-Kotlin – עכשיו צריך לבטל את ההגדרה של המאפייןsavedStateRegistryבמקום להטמיע את הפונקציהgetSavedStateRegistry()הקודמת. היא תואמת לקובץ בינארי ותואמת למקור להטמעות שנכתבו בשפת התכנות Java. (b/220191285)
גרסה 1.2.0-alpha01
26 בינואר 2022
androidx.savedstate:savedstate:1.2.0-alpha01 וגם androidx.savedstate:savedstate-ktx:1.2.0-alpha01 מופצים. גרסה 1.2.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- מעכשיו אפשר ב-
SavedStateRegistryControllerלצרף מוקדם יותר אתSavedStateRegistryדרךperformAttach(). (Ice4bf)
שינויים בהתנהגות
-
SavedStateRegistryכבר לא שומר חבילה ריקה אם אין מצב לשמירה. (aosp/1896865, b/203457956)
גרסה 1.1.0
גרסה 1.1.0
10 בפברואר 2021
androidx.savedstate:savedstate:1.1.0 וגם androidx.savedstate:savedstate-ktx:1.1.0 מופצים. גרסה 1.1.0 מכילה את השמירות האלה.
שינויים משמעותיים מאז גרסה 1.0.0
-
ViewTreeSavedStateRegistryOwnerAPI: ViewTreeSavedStateRegistryOwner.get(View)API חדש מאפשר לכם לאחזר אתSavedStateRegistryשמכיל מופע שלView. כדי שהנתונים יאוכלסו בצורה נכונה, צריך לשדרג ל-Activity1.2.0, Fragment1.3.0ו-AppCompat1.3.0-alpha01או לגרסה מתקדמת יותר. savedstate-ktxארטיפקט: נוסף ארטיפקט חדש שלsavedstate-ktxעם תוסף Kotlin לעבודה עםViewTreeSavedStateRegistryOwner.findViewTreeSavedStateRegistryOwner()
גרסה 1.1.0-rc01
16 בדצמבר 2020
הגרסאות androidx.savedstate:savedstate:1.1.0-rc01 ו-androidx.savedstate:savedstate-ktx:1.1.0-rc01 הופצו ללא שינויים מאז 1.1.0-beta01. גרסה 1.1.0-rc01 מכילה את השמירות האלה.
גרסה 1.1.0-beta01
1 באוקטובר 2020
הגרסאות androidx.savedstate:savedstate:1.1.0-beta01 ו-androidx.savedstate:savedstate-ktx:1.1.0-beta01 הופצו ללא שינויים מאז 1.1.0-alpha01. גרסה 1.1.0-beta01 מכילה את השמירות האלה.
גרסה 1.1.0-alpha01
20 במאי 2020
androidx.savedstate:savedstate:1.1.0-alpha01 וגם androidx.savedstate:savedstate-ktx:1.1.0-alpha01 מופצים. גרסה 1.1.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- ממשק API חדש של
ViewTreeSavedStateRegistryOwner.get(View)מאפשר לאחזר אתSavedStateRegistryשמכיל מופע שלView. כדי שהנתונים יאוכלסו בצורה נכונה, צריך לשדרג ל-Activity1.2.0-alpha05, Fragment1.3.0-alpha05ו-AppCompat1.3.0-alpha01. (aosp/1298679) - נוסף ארטיפקט חדש
savedstate-ktxעם הרחבת Kotlin לעבודה עםViewTreeSavedStateRegistryOwner.findViewTreeSavedStateRegistryOwner()(aosp/1299434)
גרסה 1.0.0
גרסה 1.0.0
5 בספטמבר 2019
androidx.savedstate:savedstate:1.0.0 מופץ. כאן אפשר לראות את השמירות שכלולות בגרסה הזו.
התכונות העיקריות של SavedState 1.0.0
androidx.savedstate עברה לגרסה יציבה. זוהי קבוצה של ממשקי API שמאפשרים למפתחים להוסיף רכיבים לתהליך השחזור או השמירה של מצב המופע. נקודת הכניסה הראשית של ה-API היא SavedStateRegistry, שמאפשרת לאחזר מצבים שנשמרו בעבר באמצעות consumeRestoredStateForKey ולרשום קריאה חוזרת (callback) ל-registerSavedStateProvider כדי לספק מצב שמור ברגע שהמערכת מבקשת אותו.
גרסה 1.0.0-rc01
2 ביולי 2019
androidx.savedstate:savedstate:1.0.0-rc01 מופץ. כאן אפשר לראות את השמירות שכלולות בגרסה הזו.
תיקוני באגים
- תוקן כלל שגוי של ProGuard (b/132655499)
גרסה 1.0.0-beta01
7 במאי 2019
androidx.savedstate:savedstate:1.0.0-beta01 מופץ. כאן אפשר לראות את השמירות שכלולות בגרסה הזו.
גרסה 1.0.0-alpha02
13 במרץ 2019
androidx.savedstate:savedstate:1.0.0-alpha02 מופץ. androidx.savedstate:savedstate משלב את פריטי המידע שנוצרו בתהליך פיתוח (Artifact) androidx.savedstate:savedstate-bundle ו-androidx.savedstate:savedstate-common לפריט מידע אחד, כי הוחלט לפשט את התשתית של savedstate ולהסיר את הגנריות מ-SavedStateRegistry. לכן, אין צורך במודולים נפרדים.
כאן אפשר לראות את הרשימה המלאה של פעולות ה-commit שכלולות בגרסה הזו.
תכונות חדשות
- צירפנו את
SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz )למרחב המשותף. המחלקות שצוינו יופעלו והשיטהAutoRecreated.onRecreatedתופעל כשהרכיב שאליו הן שייכות יופעל מחדש.
שינויים ב-API
- הסרת גנריקות מ-
SavedStateRegistry<T> - הוסרו המחלקות AbstractSavedStateRegistry ו-BundlableSavedStateRegistry. במקומן אפשר להשתמש במחלקה הפשוטה
SavedStateRegistry - השם של
BundleSavedStateRegistryOwnerהשתנה ל-SavedStateRegistryOwner
גרסה 1.0.0-alpha01
17 בדצמבר 2018
זו הגרסה הראשונה של SavedState.
תכונות חדשות
androidx.savedstate היא קבוצה חדשה של ממשקי API מסוג אלפא שמאפשרים למפתחים להוסיף רכיבים לתהליך השחזור או השמירה של מצב המופע. נקודת הכניסה הראשית של ה-API היא SavedStateRegistry<T>, שמאפשרת לאחזר מצב שנשמר בעבר באמצעות consumeRestoredStateForKey ולרשום קריאה חוזרת ל-registerSavedStateProvider כדי לספק מצב שנשמר ברגע שהמערכת מבקשת אותו.