Savedstate
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 23 בספטמבר 2026 | 1.5.0 | - | - | 1.6.0-alpha04 |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-SavedState, צריך להוסיף את מאגר Maven של Google לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
מגניב
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.5.0" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.5.0" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.5.0") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.5.0") }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גרסה 1.6
גרסה 1.6.0-alpha04
23 בספטמבר 2026
androidx.savedstate:savedstate-*:1.6.0-alpha04 מופץ. גרסה 1.6.0-alpha04 מכילה את השמירות האלה.
תיקוני באגים
- התלות ב-
androidx.lifecycle:lifecycle-runtimeעודכנה ל-2.10.0. הגרסה הזו נדרשת כדי להריץ בדיקות lint של זמן ריצה של מחזור חיים בחבילה עם AGP בגרסה 9.5.0-alpha04 ואילך. (I99bfd, b/556807521)
גרסה 1.6.0-alpha03
9 בספטמבר 2026
androidx.savedstate:savedstate-*:1.6.0-alpha03 מופץ. גרסה 1.6.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- מותר להשתמש במצב התחלתי של null בבונה
SavedStateRegistry. (I76006)
גרסה 1.6.0-alpha02
26 באוגוסט 2026
androidx.savedstate:savedstate-*:1.6.0-alpha02 מופץ. גרסה 1.6.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נוספו constructors ציבוריים ל-
SavedStateRegistryו-SavedStateRegistryהוגדר כך שיטמיע אתSavedStateProviderואתSavedStateRestorer. (I3c696) - נוסף ממשק
SavedStateProviderברמה העליונה. (I20f9d) - הוספנו ממשק
SavedStateRestorerברמה העליונה עםrestoreState(savedState: SavedState?)והסרנו אתSavedStateRegistry.SavedStateConsumerשלא פורסם. (Idc01d) - האפשרויות
AutoRecreatedו-runOnNextRecreationהוצאו משימוש לטובתSavedStateProviderו-SavedStateRestorer. (Iadc00) - הצגת הממשק של
SavedStateConsumerב-SavedStateRegistry. מאפשר לספקים רשומים לקבל באופן אוטומטי את המצב המשוחזר ולהשתמש בו במהלך השחזור, או מיד לאחר הרישום אם המצב כבר שוחזר. (I9a378)
גרסה 1.6.0-alpha01
12 באוגוסט 2026
androidx.savedstate:savedstate-*:1.6.0-alpha01 מופץ. גרסה 1.6.0-alpha01 מכילה את השמירות האלה.
תיקוני באגים
- כדי להשתמש ב-
LocalSavedStateRegistryOwner, צריך גרסה 1.8.0 ואילך של Compose UI. הפעולה הזו מסירה חלופות פנימיות של רפלקציה, משפרת את הביצועים אבל מחייבת שדרוג קפדני של התלות עבור לקוחות. (I16fb0)
גירסה 1.5
גרסה 1.5.0
19 במאי 2026
androidx.savedstate:savedstate-*:1.5.0 מופץ. גרסה 1.5.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.4.0:
- הפעלת סריאליזציה גנרית לאובייקטים מסוג
SavedState, כדי לאפשר קידוד ופענוח שלהם באמצעות פורמטים סטנדרטיים כמו CBOR או JSON בכל הפלטפורמות. (Iafda4, b/425919375) - הוספנו פונקציות הרחבה
putKotlinSerializableו-getKotlinSerializableל-SavedStateWriterול-SavedStateReaderכדי לאפשר אחסון ואחזור ישירים של אובייקטים מסוג Kotlin Serializable באמצעות מפתחות, וכך לייעל את השילוב עם ממשקי SavedState API. (Iba02e) - הוספת פונקציות ליצירת אובייקטים עבור
LifecycleOwner,ViewModelStoreOwnerו-SavedStateRegistryOwnerכדי לצמצם את קוד ה-boilerplate כשיוצרים רכיבי בעלים בהתאמה אישית. (I9682c) - הפעלת השמירה והשחזור של
SnapshotStateSet(שנוצר באמצעותmutableStateSetOf()) באמצעותrememberSerializable. עכשיו אפשר להשתמש ב-SnapshotStateSetב-rememberSerializableבלי שנדרש שומר מסך בהתאמה אישית. (I9a4ed, b/449498367)
גרסה 1.5.0-rc01
6 במאי 2026
androidx.savedstate:savedstate-*:1.5.0-rc01 מופץ. גרסה 1.5.0-rc01 מכילה את השמירות האלה.
גרסה 1.5.0-beta01
22 באפריל 2026
androidx.savedstate:savedstate-*:1.5.0-beta01 מופץ. גרסה 1.5.0-beta01 מכילה את השמירות האלה.
גרסה 1.5.0-alpha02
25 במרץ 2026
androidx.savedstate:savedstate-*:1.5.0-alpha02 מופץ. גרסה 1.5.0-alpha02 מכילה את השמירות האלה.
גרסה 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) - הוספת פונקציות ליצירת אובייקטים עבור
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) לארטיפקט
*-composeSavedState. מעכשיו יש תמיכה במחזור החיים בפלטפורמות הבאות: JVM (Android ומחשבים), Native (Linux, iOS, watchOS, macOS, MinGW) ואינטרנט (JavaScript, WasmJS). (/Idcf26)
גרסה 1.3.1
16 ביולי 2025
androidx.savedstate:savedstate-*:1.3.1 מופץ. גרסה 1.3.1 מכילה את השמירות האלה.
תיקוני באגים
- הוספת כל יעדי ה-KMP שנתמכים על ידי הערות ל-
SavedStateartifacts. - נוספו יעדים חדשים של Kotlin Multiplatform (KMP) ל-
SavedStateartifacts.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 למודול החדשsavedstate-compose, כדי שאפשר יהיה להשתמש בממשקי העזר של ה-API שמבוססים על Compose מחוץ לממשק המשתמש של Compose. תמיד צריך להשתמש בזה כשמשתמשים ב-Compose UI1.9.0-alpha02ומעלה, אבל יש תאימות לאחור כך שאפשר להשתמש בזה בכל הגרסאות של Compose. - התוספים
savedstate-ktxkotlin הועברו עכשיו למודול הבסיסי savedstate. - עכשיו אפשר לפתור מקרים של
SavedStateRegistryOwnerשאוחזרו באמצעותfindViewTreeSavedStateRegistryOwnerדרך הורים מנותקים של תצוגה, כמוViewOverlay. מידע נוסף על הורים של תצוגות מנותקות מופיע בהערות הגרסה של Core או במסמכי התיעוד בכתובת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 שמקבל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שנוסף ב-Lifecycle2.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) - הסרת ה-modifier
inlineמהשיטותSavedStateReaderו-SavedStateWriter. (If2a02, b/399820614) - הסרה של סדרות (serializers) מובנות של רשימות ומערכים ספציפיים ל-Android מ-API ציבורי (Ida293)
- מחליפים את
SparseParcelableArraySerializerב-SparseArraySerializer(I91de8) - התאמה של כל
SavedStateReader.getכך שיתנהגו באופן עקבי על ידי הפעלה של throw כשסוג הערך לא תואם לסוג ההחזרה (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
- מוסיפים פונקציית factory כדי ליצור
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. מידע נוסף על הורים של תצוגות מנותקות מופיע בהערות הגרסה של Core או במסמכי התיעוד בכתובת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 שמקבל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שנוסף ב-Lifecycle2.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) - הוספת פרמטרים נוספים של
savedStatefactory שתומכים ב-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
- מעכשיו אפשר לצרף את
SavedStateRegistryמוקדם יותר ב-SavedStateRegistryControllerבאמצעות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-ktxartifact: נוסףsavedstate-ktxartifact חדש עם תוסףfindViewTreeSavedStateRegistryOwner()Kotlin לעבודה עםViewTreeSavedStateRegistryOwner.
גרסה 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עם הרחבת KotlinfindViewTreeSavedStateRegistryOwner()לעבודה עםViewTreeSavedStateRegistryOwner. (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 ולרשום קריאה חוזרת (callback) ל-registerSavedStateProvider כדי לספק מצב שנשמר ברגע שהמערכת מבקשת אותו.