Savedstate

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

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

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

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

dependencies {
    // Java language implementation
    implementation "androidx.savedstate:savedstate:1.3.2"

    // Kotlin
    implementation "androidx.savedstate:savedstate-ktx:1.3.2"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.savedstate:savedstate:1.3.2")

    // Kotlin
    implementation("androidx.savedstate:savedstate-ktx:1.3.2")
}

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

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

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

नई समस्या दर्ज करने का तरीका

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

वर्शन 1.4

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

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

  • SavedStateRegistryOwner.saved में बिना किसी वैल्यू वाले टाइप के लिए नेटिव सपोर्ट को जोड़ा गया है. इससे, इस तरह की वैल्यू स्वीकार करने वाली प्रॉपर्टी को सेव करना और वापस लाना आसान हो जाता है. (Ia632, b/421325690)

वर्शन 1.3

वर्शन 1.3.1

16 जुलाई, 2025

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

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

  • एनोटेशन के साथ काम करने वाले सभी केएमपी टारगेट को SavedState आर्टफ़ैक्ट में जोड़ा गया.
  • SavedState आर्टफ़ैक्ट में नए Kotlin Multiplatform (केएमपी) टारगेट जोड़े गए. SavedState अब इन प्लैटफ़ॉर्म पर काम करता है: जेवीएम (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 मॉड्यूल अब केएमपी के साथ काम करता है. इसके अलावा, अब ये प्लैटफ़ॉर्म भी केएमपी के साथ काम करते हैं: Android, iOS, Linux, Mac, और जेवीएम डेस्कटॉप एनवायरमेंट.
  • केएमपी में ऐप्लिकेशन की स्थिति को सेव करने और वापस पाने का एक जैसा तरीका उपलब्ध कराने के लिए, SavedState ओपेक टाइप को ऐब्स्ट्रैक्शन के तौर पर पेश किया गया है. इसमें सेव किए जाने वाले स्टेटस में बदलाव करने के लिए, SavedStateReader और SavedStateWriter शामिल हैं. Android पर, SavedState, Bundle के लिए टाइप एलियास है. इससे बाइनरी फ़ाइल के साथ काम करने की सुविधा मिलती है. साथ ही, मौजूदा एपीआई को एक सामान्य source set में माइग्रेट करने में मदद मिलती है. अन्य प्लैटफ़ॉर्म पर, 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)
  • SavedStateConfiguration में encodeDefaults जोड़े गए. इससे यह तय किया जा सकेगा कि डिफ़ॉल्ट वैल्यू वाली प्रॉपर्टी को कोड में बदला जाना चाहिए या नहीं. (I893cc, b/395104517)
  • SnapshotStateMapSerializer को mutableStateMapOf के साथ काम करने के लिए, जोड़ा गया. (Ie6f19, b/378895074)
  • SnapshotStateListSerializer को mutableStateListOf के साथ काम करने के लिए, जोड़ा गया (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 केएमपी अब इन प्लैटफ़ॉर्म के साथ काम करता है: IBinder, Size, SizeF, Array<Parcelable>, SparseArray<Parcelable> और Serializable (Android). (I1ba94, b/334076622)
  • KSerializer के ऐसे इंस्टेंस जोड़े गए जिनका इस्तेमाल, Bundle के साथ काम करने वाले Java और Android टाइप को कोड में बदलने/कोड से वापस पाने के लिए किया जा सकता है. ऐसा तब होगा जब आपकी क्लास में मौजूद काम के फ़ील्ड को @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 केएमपी अब ऐरे के साथ काम करता है. (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 मॉड्यूल अब केएमपी के साथ काम करता है. इसके अलावा, अब ये प्लैटफ़ॉर्म भी केएमपी के साथ काम करते हैं: Android, iOS, Linux, Mac, और जेवीएम डेस्कटॉप एनवायरमेंट. (I26305, b/334076622)

नई सुविधाएं

  • केएमपी में ऐप्लिकेशन की स्थिति को सेव और वापस लाने का एक जैसा तरीका उपलब्ध कराने के लिए, 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 अब केएमपी के साथ काम करते हैं. (Id7bb8, b/334076622)
  • SavedState, SavedStateWriter, और SavedStateReader अब केएमपी के साथ काम करते हैं. (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 पर कॉलबैक रजिस्टर करता है.