सेव की गई स्थिति

ऐसे प्लगइन वाले कॉम्पोनेंट लिखें जो प्रोसेस बंद होने पर यूज़र इंटरफ़ेस (यूआई) की स्थिति को सेव करें और प्रोसेस के फिर से शुरू होने पर उसे वापस लाएं.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा वर्शन
16 जुलाई, 2025 1.3.1 - - -

डिपेंडेंसी का एलान करना

SavedState पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, 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")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

वर्शन 1.3

वर्शन 1.3.1

16 जुलाई, 2025

androidx.savedstate:savedstate-*:1.3.1 रिलीज़ हो गया है. वर्शन 1.3.1 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • एनोटेशन के साथ काम करने वाले सभी केएमपी टारगेट को SavedState आर्टफ़ैक्ट में जोड़ें.
  • SavedState आर्टफ़ैक्ट में नए Kotlin Multiplatform (KMP) टारगेट जोड़े गए. SavedState अब इन प्लैटफ़ॉर्म पर काम करता है: JVM (Android और डेस्कटॉप), Native (Linux, iOS, watchOS, macOS, MinGW), और Web (JavaScript, WasmJS). ध्यान दें कि *-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 मॉड्यूल में ले जाया गया है, ताकि इसके Compose पर आधारित हेल्पर एपीआई को Compose यूज़र इंटरफ़ेस (यूआई) के बाहर इस्तेमाल किया जा सके. Compose UI 1.9.0-alpha02 और इसके बाद के वर्शन का इस्तेमाल करते समय, इसका इस्तेमाल हमेशा किया जाना चाहिए. हालांकि, यह पिछले वर्शन के साथ काम करता है, ताकि इसका इस्तेमाल Compose के सभी वर्शन के साथ किया जा सके.
  • savedstate-ktx Kotlin एक्सटेंशन को अब base savedstate मॉड्यूल में ट्रांसफ़र कर दिया गया है.
  • findViewTreeSavedStateRegistryOwner के ज़रिए वापस लाए गए SavedStateRegistryOwner इंस्टेंस को अब व्यू के डिसजॉइंट पैरंट के ज़रिए हल किया जा सकता है. जैसे, ViewOverlay. डिसजॉइंट व्यू पैरंट के बारे में ज़्यादा जानने के लिए, कोर के रिलीज़ नोट या ViewTree.setViewTreeDisjointParent में मौजूद दस्तावेज़ देखें.

Kotlin Multiplatform

  • SavedState मॉड्यूल अब KMP के साथ काम करता है. अब ये प्लैटफ़ॉर्म काम करते हैं: Android, iOS, Linux, Mac, और JVM डेस्कटॉप एनवायरमेंट.
  • KMP में ऐप्लिकेशन की स्थिति को सेव और वापस लाने का एक जैसा तरीका उपलब्ध कराने के लिए, SavedState ओपेक टाइप को ऐब्स्ट्रैक्शन के तौर पर पेश किया गया है. इसमें सेव किए जाने वाले स्टेटस में बदलाव करने के लिए, SavedStateReader और SavedStateWriter शामिल हैं. Android पर, SavedState, Bundle के लिए टाइप एलियास है. इससे बाइनरी फ़ाइल के साथ काम करने की सुविधा मिलती है. साथ ही, मौजूदा एपीआई को एक सामान्य सोर्स सेट में माइग्रेट करने में मदद मिलती है. अन्य प्लैटफ़ॉर्म पर, 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 Support

  • SavedState में अब KotlinX Serialization का इस्तेमाल किया जा सकता है. encodeToSavedState और decodeFromSavedState तरीकों का इस्तेमाल करके, @Serializable के साथ एनोटेट की गई क्लास को SavedState में बदला जा सकता है. लौटाया गया SavedState, Android पर एक सामान्य Bundle होता है. इसका इस्तेमाल ऐसे किसी भी एपीआई के साथ किया जा सकता है जो 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) के साथ इस्तेमाल किए जा सकने वाले अतिरिक्त सीरियलाइज़र, savedstate मॉड्यूल में मौजूद androidx.savedstate.serialization.serializers पैकेज और savedstate-compose मॉड्यूल में मौजूद androidx.savedstate.compose.serialization.serializers पैकेज में मिल सकते हैं.

  • हमने saved को भी शामिल किया है. यह एक लेज़ी प्रॉपर्टी डेलिगेट है. इससे @Serializable क्लास को SavedStateRegistryOwner में आसानी से सेव किया जा सकता है. उदाहरण के लिए, ComponentActivity, Fragment वगैरह) और प्रोसेस के बंद होने और फिर से शुरू होने पर, उन क्लास को अपने-आप वापस लाएं. कृपया ध्यान दें कि saved डेलिगेट लेज़ी है. इसलिए, जब तक इसे ऐक्सेस नहीं किया जाता, तब तक यह 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")
        }
    }
    
  • लाइफ़साइकल 2.9.0 में जोड़ी गई SavedStateHandle के लिए, इसी तरह की saved प्रॉपर्टी डेलिगेट मौजूद है.

वर्शन 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 में ये कमिट शामिल हैं.

नई सुविधाएं

  • SavedStateReader में मौजूद get कलेक्शन के लिए, नॉन-रीफ़ाइड तरीके के वैरिएंट जोड़ें. (I0b641, b/399820614)
  • encodeDefaults को SavedStateConfiguration में जोड़ें. इससे यह तय किया जा सकेगा कि डिफ़ॉल्ट वैल्यू वाली प्रॉपर्टी को कोड में बदला जाना चाहिए या नहीं. (I893cc, b/395104517)
  • mutableStateMapOf के साथ काम करने के लिए, SnapshotStateMapSerializer जोड़ें. (Ie6f19, b/378895074)
  • mutableStateListOf के साथ काम करने के लिए, SnapshotStateListSerializer जोड़ें. (I4d888, b/378895074)
  • SavedStateReader.get वैरिएंट के लिए, getOrNull वैकल्पिक तरीके जोड़ें. ये तरीके, प्रिमिटिव वैल्यू को अपने-आप बॉक्स में डाल देंगे. (I6228c, b/399820614)

एपीआई में हुए बदलाव

  • getOrNull() ?: else() के लिए, SavedStateReader से getOrElse को हटाएं. (I87317, b/399820614)
  • SavedStateReader और SavedStateWriter तरीकों से inline मॉडिफ़ायर हटाएं. (If2a02, b/399820614)
  • Android के लिए खास तौर पर बनाए गए, लिस्ट और ऐरे के बिल्ट-इन सीरियलाइज़र को सार्वजनिक एपीआई से हटाना (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)
  • SavedStateConfig पर classDiscriminator और classDiscriminatorMode के साथ काम करने की सुविधा शामिल करें. (I69b66, b/395104517)

एपीआई में हुए बदलाव

  • saved() डेलिगेट (I39b3a) में SavedStateConfig पैरामीटर जोड़ें
  • यह बिल्ट-इन सीरियलाइज़र को सिंगलटन ऑब्जेक्ट बनाता है (Ifeee4)
  • SavedStateConfig प्रॉपर्टी अब सार्वजनिक हैं. इससे अन्य मॉड्यूल इन कॉन्फ़िगरेशन का इस्तेमाल कर सकते हैं. (Ie5f49, b/378897438)
  • MutableStateFlowSerializer और MutableStateSerializer के लिए @Serializer(with = ...) की सुविधा (I90953)
  • SavedStateReader में contentDeepToString जोड़ें (I14d10)

वर्शन 1.3.0-alpha08

12 फ़रवरी, 2025

androidx.savedstate:savedstate-*:1.3.0-alpha08 रिलीज़ हो गया है. वर्शन 1.3.0-alpha08 में ये कमिट शामिल हैं.

नई सुविधाएं

  • lifecycle-viewmodel-compose से savedstate-compose को savedstate-compose में ले जाएं. इससे, Compose के MutableState के साथ SavedState Serialization API का इस्तेमाल किया जा सकेगा.MutableStateSerializer (I4f690, b/378895074)

एपीआई में हुए बदलाव

  • किसी मौजूदा SavedState से SavedState बनाने के लिए, फ़ैक्ट्री फ़ंक्शन जोड़ें. (I39f9a)
  • androidx.savedstate में Array<SavedState> और List<SavedState> के लिए सहायता जोड़ी गई. (Idd8a5)
  • सेव किए गए स्टेट को एन्कोड/डिकोड करने के लिए SavedStateConfig वैकल्पिक पैरामीटर जोड़ें (I6c4c0)

वर्शन 1.3.0-alpha07

29 जनवरी, 2025

androidx.savedstate:savedstate-*:1.3.0-alpha07 रिलीज़ हो गया है. वर्शन 1.3.0-alpha07 में ये कमिट शामिल हैं.

नई सुविधाएं

  • kotlinx.coroutines.flow.MutableStateFlow को सीरीज़ के फ़ॉर्मैट में रिलीज़ करने के लिए MutableStateFlowSerializer जोड़ें. (I6a892, b/378895070)

एपीआई में हुए बदलाव

  • डिफ़ॉल्ट पैरामीटर (Icd1c1) के साथ, ओवरलोड किए गए SavedStateRegistryOwner.saved() डेलिगेट फ़ंक्शन बदलें
  • JavaSerializableSerializer और ParcelableSerializer की खास जानकारी बनाओ (I268f6)
  • CharSequenceSerializer (Ib40bd) से सामान्य T : CharSequence हटाएं

वर्शन 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 के ऐसे इंस्टेंस जोड़ें जिनका इस्तेमाल, Bundle के साथ काम करने वाले Java और Android टाइप को कोड में बदलने/कोड से वापस पाने के लिए किया जा सकता है. इसके लिए, अपनी क्लास में मौजूद काम के फ़ील्ड को KSerializer के तौर पर मार्क करें.@Serializable(with = ParcelableSerializer::class) (I8c10f, I28caf, b/376026712)
  • findViewTreeSavedStateRegistryOwner के ज़रिए वापस लाए गए SavedStateRegistryOwner इंस्टेंस को अब व्यू के डिसजॉइंट पैरंट के ज़रिए हल किया जा सकता है. जैसे, ViewOverlay. डिसजॉइंट व्यू पैरंट के बारे में ज़्यादा जानने के लिए, कोर के रिलीज़ नोट या ViewTree.setViewTreeDisjointParent में मौजूद दस्तावेज़ देखें. (Iccb33)

एपीआई में हुए बदलाव

  • नाम रखने के तरीके और पैकेज के संगठन को SavedStateRegistryOwnerDelegate (I8c135, b/376026744) के साथ ज़्यादा एक जैसा बनाएं

वर्शन 1.3.0-alpha05

13 नवंबर, 2024

androidx.savedstate:savedstate-*:1.3.0-alpha05 रिलीज़ हो गया है. वर्शन 1.3.0-alpha05 में ये कमिट शामिल हैं.

KotlinX Serialization Support

  • SavedState में अब KotlinX Serialization का इस्तेमाल किया जा सकता है. encodeToSavedState और decodeFromSavedState तरीकों का इस्तेमाल करके, @Serializable के साथ एनोटेट की गई क्लास को SavedState में बदला जा सकता है. लौटाया गया SavedState, Android पर एक सामान्य Bundle होता है. इसका इस्तेमाल ऐसे किसी भी एपीआई के साथ किया जा सकता है जो 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 डेलिगेट लेज़ी है. इसलिए, जब तक इसे ऐक्सेस नहीं किया जाता, तब तक यह 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")
        }
    }
    
  • लाइफ़साइकल 2.9.0-alpha07 में जोड़ी गई SavedStateHandle के लिए, इसी तरह की saved प्रॉपर्टी डेलिगेट मौजूद है.

एपीआई में हुए बदलाव

  • SavedState में toMap जोड़ें, ताकि किसी भी 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 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • SavedState KMP अब Char के साथ काम करता है. (I9ac2f, b/334076622)
  • SavedState KMP में putNull और isNull जोड़ें. (Iea71d, b/334076622)
  • शुरुआती Map<String, Any> (I9b37d, b/334076622) के साथ काम करने वाले अतिरिक्त savedState फ़ैक्ट्री पैरामीटर जोड़ें
  • 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)

नई सुविधाएं

  • KMP में ऐप्लिकेशन की स्थिति को सेव और वापस लाने का एक जैसा तरीका उपलब्ध कराने के लिए, SavedState ओपेक टाइप को ऐब्स्ट्रैक्शन के तौर पर पेश किया गया है. इसमें सेव किए जाने वाले स्टेटस में बदलाव करने के लिए, SavedStateReader और SavedStateWriter शामिल हैं. Android पर, SavedState, Bundle के लिए टाइप एलियास है. इससे बाइनरी फ़ाइल के साथ काम करने की सुविधा मिलती है. साथ ही, मौजूदा एपीआई को एक सामान्य सोर्स सेट में माइग्रेट करने में मदद मिलती है. अन्य प्लैटफ़ॉर्म पर, 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")
  }

एपीआई में हुए बदलाव

  • 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 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • savedstate-ktx Kotlin एक्सटेंशन को अब base 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 अब performAttach() के ज़रिए, SavedStateRegistry को वीडियो में जल्दी अटैच करने की अनुमति देता है.
  • अब getSavedStateProvider() के ज़रिए, SavedStateRegistry से पहले से रजिस्टर किया गया SavedStateProvider वापस पाया जा सकता है.
  • SavedState लाइब्रेरी को Kotlin में फिर से लिखा गया है.
    • SavedStateRegistryOwner के लिए, Kotlin में लिखी गई क्लास के लिए यह सोर्स के साथ काम न करने वाला बदलाव है. अब आपको पिछले getSavedStateRegistry() फ़ंक्शन को लागू करने के बजाय, savedStateRegistry प्रॉपर्टी को बदलना होगा.
    • ViewTreeSavedStateRegistryOwner के लिए, Kotlin में लिखी गई क्लास के लिए यह सोर्स के साथ काम न करने वाला बदलाव है. अब आपको androidx.savedstate.setViewTreeSavedStateRegistryOwner और androidx.savedstate.findViewTreeSavedStateRegistryOwner के View पर Kotlin एक्सटेंशन के तरीकों को सीधे तौर पर इंपोर्ट और इस्तेमाल करना होगा, ताकि पहले से सेट किए गए मालिक को सेट और ढूंढा जा सके. यह findViewTreeSavedStateRegistryOwner के savedstate-ktx एपीआई की जगह लेगा.

व्यवहार में बदलाव

  • 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 को अपडेट कर दिया गया है. इससे मालिक को अपनी ज़िम्मेदारियों और अनुबंध के बारे में साफ़ तौर पर पता चलेगा. साथ ही, यह भी पता चलेगा कि उसे इंटरफ़ेस को कैसे लागू करना चाहिए या 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 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • SavedStateRegistry और ViewTreeSavedStateRegistryOwner क्लास को Kotlin में फिर से लिखा गया है. ViewTreeSavedStateRegistryOwner के लिए, Kotlin में लिखी गई क्लास के लिए यह सोर्स के साथ काम न करने वाला बदलाव है. अब आपको androidx.savedstate.setViewTreeSavedStateRegistryOwner और androidx.savedstate.findViewTreeSavedStateRegistryOwner के View पर Kotlin एक्सटेंशन के तरीकों को सीधे तौर पर इंपोर्ट और इस्तेमाल करना होगा, ताकि पहले से सेट किए गए मालिक को सेट और ढूंढा जा सके. यह findViewTreeSavedStateRegistryOwner के savedstate-ktx एपीआई की जगह लेगा. यह बाइनरी के साथ काम करता है. साथ ही, 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 में ये कमिट शामिल हैं.

नई सुविधाएं

  • अब getSavedStateProvider() के ज़रिए, SavedStateRegistry से पहले से रजिस्टर किया गया SavedStateProvider वापस पाया जा सकता है. (I7ea47, b/215406268)

एपीआई में हुए बदलाव

  • SavedStateRegistryOwner, SavedStateRegistryController, और Recreator क्लास को Kotlin में फिर से लिखा गया है. SavedStateRegistryOwner के लिए, Kotlin में लिखी गई क्लास के लिए यह सोर्स के साथ काम न करने वाला बदलाव है. अब आपको पिछले getSavedStateRegistry() फ़ंक्शन को लागू करने के बजाय, savedStateRegistry प्रॉपर्टी को बदलना होगा. यह 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 अब performAttach() के ज़रिए, SavedStateRegistry को पहले से अटैच करने की अनुमति देता है. (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 एपीआई: नए ViewTreeSavedStateRegistryOwner.get(View) एपीआई की मदद से, View इंस्टेंस के लिए SavedStateRegistry को वापस पाया जा सकता है. इस जानकारी को सही तरीके से भरने के लिए, आपको Activity 1.2.0, Fragment 1.3.0, और AppCompat 1.3.0-alpha01 या इसके बाद के वर्शन पर अपग्रेड करना होगा.
  • savedstate-ktx आर्टफ़ैक्ट: नया savedstate-ktx आर्टफ़ैक्ट जोड़ा गया है. इसमें ViewTreeSavedStateRegistryOwner के साथ काम करने के लिए, findViewTreeSavedStateRegistryOwner() Kotlin एक्सटेंशन शामिल है.

वर्शन 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 में ये कमिट शामिल हैं.

नई सुविधाएं

  • नए ViewTreeSavedStateRegistryOwner.get(View) एपीआई की मदद से, View इंस्टेंस के लिए SavedStateRegistry को वापस पाया जा सकता है. इस जानकारी को सही तरीके से भरने के लिए, आपको Activity 1.2.0-alpha05, Fragment 1.3.0-alpha05, और AppCompat 1.3.0-alpha01 पर अपग्रेड करना होगा. (aosp/1298679)
  • नया savedstate-ktx आर्टफ़ैक्ट जोड़ा गया है. इसमें ViewTreeSavedStateRegistryOwner के साथ काम करने के लिए, findViewTreeSavedStateRegistryOwner() Kotlin एक्सटेंशन शामिल है. (aosp/1299434)

वर्शन 1.0.0

वर्शन 1.0.0

5 सितंबर, 2019

androidx.savedstate:savedstate:1.0.0 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट यहां देखे जा सकते हैं.

SavedState 1.0.0 की मुख्य सुविधाएं

androidx.savedstate को स्टेबल रिलीज़ में अपग्रेड कर दिया गया है. यह एपीआई का एक सेट है. इसकी मदद से डेवलपर, कॉम्पोनेंट को restore / saveInstanceState प्रोसेस में प्लगिन कर सकते हैं. एपीआई का मुख्य एंट्री पॉइंट SavedStateRegistry है. यह consumeRestoredStateForKey का इस्तेमाल करके, पहले से सेव की गई स्थितियों को वापस पाने का तरीका उपलब्ध कराता है. साथ ही, सिस्टम के अनुरोध करने पर सेव की गई स्थिति उपलब्ध कराने के लिए, 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 तरीके को चलाया जाएगा.

एपीआई में हुए बदलाव

  • SavedStateRegistry<T> से जेनेरिक दवाएं हटा दी गई हैं
  • AbstractSavedStateRegistry और BundlableSavedStateRegistry को हटा दिया गया है. इसके बजाय, SavedStateRegistry का इस्तेमाल करें
  • BundleSavedStateRegistryOwner का नाम बदलकर SavedStateRegistryOwner कर दिया गया है

वर्शन 1.0.0-alpha01

17 दिसंबर, 2018

यह SavedState का पहला वर्शन है.

नई सुविधाएं

androidx.savedstate, ऐल्फ़ा एपीआई का एक नया सेट है. इसकी मदद से डेवलपर, कॉम्पोनेंट को restore / saveInstanceState प्रोसेस में प्लगिन कर सकते हैं. एपीआई का मुख्य एंट्री पॉइंट SavedStateRegistry<T> है. यह consumeRestoredStateForKey के ज़रिए, पहले से सेव की गई स्थिति को वापस पाने का तरीका उपलब्ध कराता है. साथ ही, सिस्टम के अनुरोध करने पर सेव की गई स्थिति उपलब्ध कराने के लिए, registerSavedStateProvider पर कॉलबैक रजिस्टर करता है.