Savedstate
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 22 अक्टूबर, 2025 | 1.3.3 | 1.4.0-rc01 | - | - |
डिपेंडेंसी का एलान करना
SavedState पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.3.3" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.3" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.3") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.3") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.4
वर्शन 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
08 अक्टूबर, 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 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
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 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
SavedStateRegistryOwner.savedमें बिना किसी वैल्यू वाले टाइप के लिए नेटिव सपोर्ट को जोड़ा गया है. इससे, इस तरह की वैल्यू स्वीकार करने वाली प्रॉपर्टी को सेव करना और वापस लाना आसान हो जाता है. (Ia632, b/421325690)
वर्शन 1.3
वर्शन 1.3.3
17 सितंबर, 2025
androidx.savedstate:savedstate-*:1.3.3 रिलीज़ हो गया है. वर्शन 1.3.3 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- Compose कंपाइलर प्लगिन लागू न होने की गड़बड़ी को ठीक किया गया है. इसकी वजह से,
SavedStateकेएमपी आर्टफ़ैक्ट काम नहीं कर रहे थे. (Id2290, b/443965665)
वर्शन 1.3.2
27 अगस्त, 2025
androidx.savedstate:savedstate-*:1.3.2 रिलीज़ हो गया है. वर्शन 1.3.2 में ये बदलाव शामिल हैं.
नई सुविधाएं
- SavedState
*-composeआर्टफ़ैक्ट में नए Kotlin Multiplatform (केएमपी) टारगेट जोड़े गए. Lifecycle अब इन प्लैटफ़ॉर्म पर काम करता है: जेवीएम (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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- एनोटेशन के साथ काम करने वाले सभी केएमपी टारगेट को
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 UI1.9.0-alpha02और इसके बाद के वर्शन का इस्तेमाल करते समय, इसका इस्तेमाल हमेशा किया जाना चाहिए. हालांकि, यह पिछले वर्शन के साथ काम करता है, ताकि इसे Compose के सभी वर्शन के साथ इस्तेमाल किया जा सके.savedstate-ktxकोटलिन एक्सटेंशन को अब base savedstate मॉड्यूल में ट्रांसफ़र कर दिया गया है.findViewTreeSavedStateRegistryOwnerके ज़रिए वापस लाए गएSavedStateRegistryOwnerइंस्टेंस को अब व्यू के अलग-अलग पैरंट के ज़रिए हल किया जा सकता है. जैसे,ViewOverlay. व्यू के अलग-अलग पैरंट के बारे में ज़्यादा जानने के लिए, कोर के रिलीज़ नोट याViewTree.setViewTreeDisjointParentमें मौजूद दस्तावेज़ देखें.
Kotlin Multiplatform
SavedStateमॉड्यूल अब केएमपी के साथ काम करता है. इसके अलावा, अब ये प्लैटफ़ॉर्म भी केएमपी के साथ काम करते हैं: Android, iOS, Linux, Mac, और जेवीएम डेस्कटॉप एनवायरमेंट.केएमपी में ऐप्लिकेशन की स्थिति को सेव करने और वापस पाने का एक जैसा तरीका उपलब्ध कराने के लिए,
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में बदला जा सकता है. Android पर, लौटाया गयाSavedStateएक सामान्य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)
- सेव किए गए स्टेट केएमपी में
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कोटलिन एक्सटेंशन को अब 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 में ये बदलाव शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
SavedStateअब लाइफ़साइकल2.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 के बाद हुए अहम बदलाव
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 में ये बदलाव शामिल हैं.
दस्तावेज़ में बदलाव
SavedStateRegistryOwnerKdocs को अपडेट कर दिया गया है. इससे मालिक की ज़िम्मेदारियों और अनुबंध के बारे में साफ़ तौर पर पता चलता है. साथ ही, यह भी पता चलता है कि उसे इंटरफ़ेस को कैसे लागू करना चाहिए या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 के बाद के मुख्य बदलाव
ViewTreeSavedStateRegistryOwnerAPI: नएViewTreeSavedStateRegistryOwner.get(View)API की मदद से,Viewइंस्टेंस के लिएSavedStateRegistryको वापस पाया जा सकता है. इस जानकारी को सही तरीके से भरने के लिए, आपको Activity1.2.0, Fragment1.3.0, और AppCompat1.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को वापस पाया जा सकता है. इस जानकारी को सही तरीके से भरने के लिए, आपको Activity1.2.0-alpha05, Fragment1.3.0-alpha05, और AppCompat1.3.0-alpha01पर अपग्रेड करना होगा. (aosp/1298679) savedstate-ktxके साथ काम करने के लिए,findViewTreeSavedStateRegistryOwner()Kotlin एक्सटेंशन के साथ नयाsavedstate-ktxआर्टफ़ैक्ट जोड़ा गया है.ViewTreeSavedStateRegistryOwner(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 पर कॉलबैक रजिस्टर करता है.