Savedstate
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 9 בספטמבר 2026 | 1.5.0 | - | - | 1.6.0-alpha03 |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-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-alpha03
9 בספטמבר 2026
androidx.savedstate:savedstate-*:1.6.0-alpha03 מופץ. גרסה 1.6.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- מצב התחלתי אפס מותר בבונה
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) - כדי לצמצם את קוד ה-boilerplate כשמרכיבים רכיבי בעלים בהתאמה אישית, מוסיפים פונקציות factory ל-
LifecycleOwner, ל-ViewModelStoreOwnerול-SavedStateRegistryOwner. (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) - כדי לצמצם את קוד ה-boilerplate כשמרכיבים רכיבי בעלים בהתאמה אישית, מוסיפים פונקציות factory ל-
LifecycleOwner, ל-ViewModelStoreOwnerול-SavedStateRegistryOwner. (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) ו-Web (JavaScript, WasmJS). (/Idcf26)
גרסה 1.3.1
16 ביולי 2025
androidx.savedstate:savedstate-*:1.3.1 מופץ. גרסה 1.3.1 מכילה את השמירות האלה.
תיקוני באגים
- הוספת כל יעדי ה-KMP שנתמכים על ידי הערות ל-artifacts של
SavedState. - נוספו יעדים חדשים של 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הוא שם חלופי (alias) ל-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וכו') ולשחזר את המחלקות האלה באופן אוטומטי אחרי שהתהליך מסתיים ומתחיל מחדש. חשוב לזכור שהנציגsavedהוא עצלן ולא יפעיל את פונקציית ה-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") } }בנוסף, נוסף Lifecycle
2.9.0מאפיין דומה שלsavedבעלות מואצלת עלSavedStateHandle.
גרסה 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 מכילה את השמירות האלה.
תכונות חדשות
- הוספת וריאציות של שיטות שלא עברו reification לאוספים מסוג
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
- מוסיפים פונקציית 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. מידע נוסף על הורים של תצוגות מפוצלות זמין בהערות הגרסה של ליבת או במאמרי העזרה בכתובת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וכו') ולשחזר את המחלקות האלה באופן אוטומטי אחרי שהתהליך מסתיים ומתחיל מחדש. חשוב לזכור שהנציגsavedהוא עצלן ולא יפעיל את פונקציית ה-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") } }בנוסף, נוסף Lifecycle
2.9.0-alpha07מאפיין דומה שלsavedבעלות מואצלת עלSavedStateHandle.
שינויים ב-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
- מעכשיו אפשר לצרף את
SavedStateRegistryמוקדם יותר באמצעותperformAttach()ב-SavedStateRegistryController. - עכשיו אפשר לאחזר
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 מכילה את השמירות האלה.
תכונות חדשות
- מעכשיו אפשר לצרף את
SavedStateRegistryמוקדם יותר ב-SavedStateRegistryControllerדרך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עם תוסף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עםfindViewTreeSavedStateRegistryOwner()הרחבת Kotlin לעבודה עם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. לכן, אין צורך במודולים נפרדים.
כאן אפשר לראות את הרשימה המלאה של הקומיטים שכלולים בגרסה הזו.
תכונות חדשות
- הוספנו את
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 כדי לספק מצב שנשמר ברגע שהמערכת מבקשת אותו.