הקפאת המצב לשיתוף

כתיבת רכיבים שניתנים להוספה, ששומרים את מצב ממשק המשתמש כשמפסיקים תהליך ומשחזרים אותו כשמפעילים מחדש את התהליך.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫2 ביולי 2025 1.3.1 - - -

הצהרה על יחסי תלות

כדי להוסיף תלות ב-SavedState, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

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")
}

מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ב-Build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.

יצירת בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.

גרסה 1.3

גרסה 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 UI 1.9.0-alpha02 ומעלה, אבל יש תאימות לאחור כך שאפשר להשתמש בו בכל הגרסאות של Compose.
  • התוספים של savedstate-ktx kotlin הועברו עכשיו למודול הבסיסי של savedstate.
  • עכשיו אפשר לפתור מקרים של SavedStateRegistryOwner שאוחזרו באמצעות findViewTreeSavedStateRegistryOwner דרך הורים לא רציפים של תצוגה, כמו ViewOverlay. מידע נוסף על הורים של תצוגות לא רציפות זמין בהערות הגרסה של core או במסמכי התיעוד בכתובת ViewTree.setViewTreeDisjointParent.

Kotlin Multiplatform

  • מודול SavedState תואם עכשיו ל-KMP. הפלטפורמות הנתמכות כוללות עכשיו את Android,‏ iOS,‏ Linux,‏ Mac וסביבות שולחן עבודה של JVM.
  • הוספנו את סוג הנתונים האפום SavedState כהפשטה כדי לספק דרך עקבית לשמירה ולשחזור של מצב האפליקציה ב-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 הוא עצלן ולא יפעיל את פונקציית ה-lambda‏ init או ישמור משהו ב-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 מכילה את הקומטים האלה.

תכונות חדשות

  • הוספת וריאציות של שיטות שלא עברו רִיפִיקציה לאוספים של 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 מכילה את הקומטים האלה.

תכונות חדשות

  • SavedState KMP תומך עכשיו ב: 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 וכו') ולגרום לשחזור אוטומטי של המחלקות האלה אחרי שהתהליך מסתיים ונוצר מחדש. חשוב לזכור שהנציג saved הוא עצלן ולא יפעיל את פונקציית ה-lambda‏ init או ישמור משהו ב-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)
  • SavedState KMP תומך עכשיו במערכים. (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)

תכונות חדשות

  • הוספנו את סוג הנתונים האפום SavedState כהפשטה כדי לספק דרך עקבית לשמירה ולשחזור של מצב האפליקציה ב-KMP. הוא כולל SavedStateReader ו-SavedStateWriter לשינוי המצב שייכלל בשמירה. ב-Android, ‏ SavedState הוא שם חלופי (alias) לסוג 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-ktx kotlin הועברו עכשיו למודול הבסיסי של 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 מכילה את הקומיטים האלה.

עדכונים של יחסי תלות

גרסה 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-ktx של 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 כוללת את הקומיטים האלה.

שינויים במסמכי התיעוד

  • המסמכים SavedStateRegistryOwner Kdocs עודכנו כדי להבהיר את האחריות והחוזה של הבעלים לגבי אופן היישום של הממשק או מתי צריך להפעיל את ה-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-ktx של 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

  • ViewTreeSavedStateRegistryOwner API: ViewTreeSavedStateRegistryOwner.get(View) API חדש מאפשר לכם לאחזר את SavedStateRegistry שמכיל מופע של View. כדי שהנתונים יאוכלסו בצורה נכונה, צריך לשדרג ל-Activity 1.2.0, ‏ Fragment 1.3.0 ו-AppCompat 1.3.0-alpha01 או לגרסה מתקדמת יותר.
  • savedstate-ktx artifact: נוסף savedstate-ktx artifact חדש עם תוסף 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. כדי שהנתונים יאוכלסו בצורה נכונה, צריך לשדרג ל-Activity 1.2.0-alpha05, ‏ Fragment 1.3.0-alpha05 ו-AppCompat 1.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 משלב את פריטי המידע 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 כדי לספק מצב שנשמר ברגע שהמערכת מבקשת אותו.