सेव की गई स्थिति
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा वर्शन |
---|---|---|---|---|
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 UI1.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 में ये कमिट शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
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 में ये कमिट शामिल हैं.
दस्तावेज़ में बदलाव
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
को वापस पाया जा सकता है. इस जानकारी को सही तरीके से भरने के लिए, आपको 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
आर्टफ़ैक्ट जोड़ा गया है. इसमें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
पर कॉलबैक रजिस्टर करता है.