ऐप्लिकेशन के चालू रहने के दौरान, डिवाइस के कुछ कॉन्फ़िगरेशन में बदलाव हो सकते हैं. इनमें ये शामिल हैं, लेकिन इन तक सीमित नहीं हैं:
- ऐप्लिकेशन का डिसप्ले साइज़
- स्क्रीन की दिशा
- फ़ॉन्ट का साइज़ और मोटाई
- स्थान-भाषा
- गहरे रंग वाला मोड बनाम हल्के रंग वाला मोड
- कीबोर्ड की उपलब्धता
कॉन्फ़िगरेशन में होने वाले ज़्यादातर बदलाव, उपयोगकर्ता के इंटरैक्शन की वजह से होते हैं. उदाहरण के लिए, डिवाइस को घुमाने या फ़ोल्ड करने पर, आपके ऐप्लिकेशन के लिए उपलब्ध स्क्रीन स्पेस
बदल जाता है. इसी तरह, फ़ॉन्ट का साइज़,
भाषा या पसंदीदा थीम जैसी डिवाइस सेटिंग में बदलाव करने पर, उनकी वैल्यू
Configuration ऑब्जेक्ट में बदल जाती हैं.
इन पैरामीटर के लिए, आम तौर पर आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में काफ़ी बड़े बदलाव करने पड़ते हैं. इसलिए, Android प्लैटफ़ॉर्म में इनके बदलने पर, खास तौर पर बनाया गया एक मैकेनिज़्म होता है.
यह मैकेनिज़्म, Activity को फिर से बनाना है.
ऐक्टिविटी को फिर से बनाना
कॉन्फ़िगरेशन में बदलाव होने पर, सिस्टम Activity को फिर से बनाता है. ऐसा करने के लिए, सिस्टम onDestroy को कॉल करता है और मौजूदा Activity
इंस्टेंस को खत्म कर देता है. इसके बाद, onCreate का इस्तेमाल करके एक नया इंस्टेंस बनाता है. इस नए
Activity इंस्टेंस को, अपडेट किए गए नए कॉन्फ़िगरेशन के साथ शुरू किया जाता है. इसका मतलब यह भी है कि सिस्टम, नए कॉन्फ़िगरेशन के साथ यूज़र इंटरफ़ेस (यूआई) को भी फिर से बनाता है.
आम तौर पर, Activity, कंपोज़ेबल के लिए होस्ट के तौर पर काम करता है. Activity को फिर से बनाने पर, Compose भी नए कॉन्फ़िगरेशन वैल्यू का इस्तेमाल करके, आपके यूज़र इंटरफ़ेस (यूआई) को फिर से बनाता है.
फिर से बनाने के इस तरीके से, आपका ऐप्लिकेशन नए कॉन्फ़िगरेशन के हिसाब से काम करता है. ऐसा इसलिए होता है, क्योंकि यह आपके ऐप्लिकेशन को, डिवाइस के नए कॉन्फ़िगरेशन से मेल खाने वाले वैकल्पिक संसाधनों के साथ अपने-आप रीलोड कर देता है.
फिर से बनाने का उदाहरण
मान लें कि कोई कंपोज़ेबल, स्ट्रिंग रिसोर्स का इस्तेमाल करके एक स्टैटिक टाइटल दिखाता है:
// In the res/values/strings.xml file // <string name="compose">Jetpack Compose</string> // In your Compose code Text( text = stringResource(R.string.compose) )
Activity के बनने पर, Text कंपोज़ेबल, मौजूदा कॉन्फ़िगरेशन (जैसे कि भाषा) को पढ़ता है और सही स्ट्रिंग रिसोर्स को रिज़ॉल्व करता है.
भाषा बदलने पर, सिस्टम ऐक्टिविटी को फिर से बनाता है. ऐसा होने पर, Compose यूज़र इंटरफ़ेस (यूआई) को फिर से बनाता है. चूंकि stringResource, मौजूदा कॉन्फ़िगरेशन से पढ़ता है, इसलिए टाइटल अपने-आप सही स्थानीय भाषा में अपडेट हो जाता है.
फिर से बनाने की प्रोसेस में, Activity में फ़ील्ड के तौर पर सेव की गई कोई भी स्थिति मिट जाती है.
कॉन्फ़िगरेशन में होने वाले बदलावों के दौरान, अपने यूज़र इंटरफ़ेस (यूआई) की स्थिति को बनाए रखने के लिए, स्थिति को मैनेज करने के सुझाए गए पैटर्न का इस्तेमाल करें. डेटा और कारोबारी नियमों के लिए ViewModel का इस्तेमाल करें. साथ ही, यूज़र इंटरफ़ेस (यूआई) के लेवल की स्थिति के लिए rememberSaveable का इस्तेमाल करें. इन मैकेनिज़्म की मदद से, Activity को फिर से बनाने के दौरान, आपकी स्थिति बनी रहती है. साथ ही, यूज़र इंटरफ़ेस (यूआई), नए कॉन्फ़िगरेशन को दिखाने के लिए अपडेट होता है.
Compose में स्थिति सेव करने के बारे में ज़्यादा जानकारी के लिए, Compose में यूज़र इंटरफ़ेस (यूआई) की स्थिति सेव करना लेख पढ़ें.
उपयोगकर्ताओं की उम्मीदें
किसी ऐप्लिकेशन का इस्तेमाल करने वाला व्यक्ति, स्थिति को बनाए रखने की उम्मीद करता है. अगर कोई व्यक्ति फ़ॉर्म भर रहा है और जानकारी देखने के लिए मल्टी-विंडो मोड में कोई दूसरा ऐप्लिकेशन खोलता है, तो अगर वह व्यक्ति वापस आने पर, फ़ॉर्म को खाली पाता है या ऐप्लिकेशन में कहीं और पहुंच जाता है, तो यह एक खराब उपयोगकर्ता अनुभव है. डेवलपर के तौर पर, आपको कॉन्फ़िगरेशन में होने वाले बदलावों और ऐक्टिविटी को फिर से बनाने के दौरान, एक जैसा उपयोगकर्ता अनुभव देना होगा.
यह पुष्टि करने के लिए कि आपके ऐप्लिकेशन में स्थिति बनी रहती है या नहीं, ऐसी कार्रवाइयां की जा सकती हैं जिनसे कॉन्फ़िगरेशन में बदलाव होते हैं. ये कार्रवाइयां, ऐप्लिकेशन के फ़ोरग्राउंड में और बैकग्राउंड में होने के दौरान की जा सकती हैं. इन कार्रवाइयों में ये शामिल हैं:
- डिवाइस को घुमाना
- मल्टी-विंडो मोड में जाना
- मल्टी-विंडो मोड या फ़्री-फ़ॉर्म विंडो में होने के दौरान, ऐप्लिकेशन का साइज़ बदलना
- एक से ज़्यादा डिसप्ले वाले फ़ोल्ड किए जा सकने वाले डिवाइस को फ़ोल्ड करना
- सिस्टम की थीम बदलना. जैसे, गहरे रंग वाला मोड बनाम हल्के रंग वाला मोड
- फ़ॉन्ट का साइज़ बदलना
- सिस्टम या ऐप्लिकेशन की भाषा बदलना
- हार्डवेयर कीबोर्ड को कनेक्ट या डिसकनेक्ट करना
- डॉक को कनेक्ट या डिसकनेक्ट करना
Activity को फिर से बनाने के दौरान, काम की स्थिति को बनाए रखने के लिए, कई तरीके अपनाए जा सकते हैं. आपको कौनसे तरीके का इस्तेमाल करना है, यह इस बात पर निर्भर करता है कि आपको किस तरह की स्थिति को बनाए रखना है:
- जटिल या बड़े डेटा के लिए, प्रोसेस खत्म होने की स्थिति को हैंडल करने के लिए, लोकल परसिस्टेंस का इस्तेमाल करना.
परसिस्टेंट लोकल स्टोरेज में, डेटाबेस या
DataStoreशामिल होते हैं. - रिटेन किए गए ऑब्जेक्ट जैसे कि
ViewModelइंस्टेंस का इस्तेमाल, मेमोरी में यूज़र इंटरफ़ेस (यूआई) से जुड़ी स्थिति को हैंडल करने के लिए किया जाता है. ऐसा तब किया जाता है, जब उपयोगकर्ता ऐप्लिकेशन का इस्तेमाल कर रहा हो. rememberSaveableकॉन्फ़िगरेशन में होने वाले बदलावों और सिस्टम की वजह से प्रोसेस खत्म होने के दौरान, यूज़र इंटरफ़ेस (यूआई) की अस्थायी स्थिति को बनाए रखने के लिए. यह ऐसी स्थिति के लिए सही है जो उपयोगकर्ता के इनपुट, स्क्रोल की पोज़िशन या नेविगेशन पर निर्भर करती है, लेकिनViewModelमें नहीं होती.
इनमें से हर एक के लिए एपीआई के बारे में ज़्यादा जानकारी पाने और हर एक का इस्तेमाल कब करना सही है, यह जानने के लिए, यूज़र इंटरफ़ेस (यूआई) की स्थिति सेव करना लेख पढ़ें.
ऐक्टिविटी को फिर से बनाने की सुविधा को सीमित करना
कॉन्फ़िगरेशन में होने वाले कुछ बदलावों के लिए, ऐक्टिविटी को अपने-आप फिर से बनाने की सुविधा को रोका जा सकता है. Compose-only ऐप्लिकेशन में, आपका यूज़र इंटरफ़ेस (यूआई) दोनों ही स्थितियों में फिर से कंपोज़ किया जाता है. हालांकि, हमारा सुझाव है कि कॉन्फ़िगरेशन में होने वाले बदलाव को सीधे तौर पर हैंडल किया जाए.
डिफ़ॉल्ट रूप से, कॉन्फ़िगरेशन में होने वाले बदलाव की वजह से, सिस्टम को ऐक्टिविटी को बंद करना और फिर से बनाना पड़ता है. इसमें यूज़र इंटरफ़ेस (यूआई) और ऐक्टिविटी से मिलने वाले सभी ऑब्जेक्ट शामिल होते हैं. अगर आपने यह बताया है कि आपकी ऐक्टिविटी, कॉन्फ़िगरेशन में होने वाले बदलाव को खुद हैंडल करती है, तो सिस्टम ऐसा नहीं करता. इसके बजाय, सिर्फ़ Configuration ऑब्जेक्ट अपडेट होता है. साथ ही, Compose, नए वैल्यू के साथ आपके यूज़र इंटरफ़ेस (यूआई) को फिर से कंपोज़ करता है.
Compose में कॉन्फ़िगरेशन में होने वाले बदलावों को सीधे तौर पर हैंडल करने के कई फ़ायदे हैं:
- बेहतर परफ़ॉर्मेंस: यूज़र इंटरफ़ेस (यूआई) को फिर से कंपोज़ करना, ऐक्टिविटी को पूरी तरह से फिर से बनाने के साइकल से कम खर्चीला होता है. ऐसा खास तौर पर छोटे-मोटे बदलावों के लिए होता है.
- फ़्लूड ऐनिमेशन: ऐक्टिविटी को रीस्टार्ट करने से बचने पर, कॉन्फ़िगरेशन में होने वाले बदलावों के दौरान, लगातार ऐनिमेशन चलाए जा सकते हैं. जैसे, डिवाइस को घुमाने के दौरान, लेआउट में आसानी से ट्रांज़िशन होना.
- स्थिति को बनाए रखना: ऐक्टिविटी इंस्टेंस को बनाए रखने से, स्क्रीन घुमाने जैसे इवेंट के दौरान, यूज़र इंटरफ़ेस (यूआई) की अस्थायी स्थिति के खोने का खतरा कम हो जाता है. ध्यान दें कि आपको सिस्टम की वजह से प्रोसेस खत्म होने के दौरान, स्थिति को बनाए रखने की सुविधा को हैंडल करना होगा.
कॉन्फ़िगरेशन में होने वाले खास बदलावों के लिए, ऐक्टिविटी को फिर से बनाने की सुविधा को बंद करने के लिए,
android:configChanges में
<activity> एंट्री में अपनी AndroidManifest.xml फ़ाइल में कॉन्फ़िगरेशन का टाइप जोड़ें. `android:configChanges` एट्रिब्यूट के दस्तावेज़ में, संभावित वैल्यू
दिखती हैं.
मेनिफ़ेस्ट का यह कोड, स्क्रीन के ओरिएंटेशन और कीबोर्ड की उपलब्धता में बदलाव होने पर, Activity के लिए MyActivity को फिर से बनाने की सुविधा को बंद कर देता है:
<activity
android:name=".MyActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
android:label="@string/app_name">
Android 17
Android 17 (एपीआई लेवल 37) से, सिस्टम अब डिफ़ॉल्ट रूप से, कॉन्फ़िगरेशन में होने वाले कई बदलावों के लिए, ऐक्टिविटी को रीस्टार्ट नहीं करता. आम तौर पर, इन बदलावों के लिए, यूज़र इंटरफ़ेस (यूआई) को पूरी तरह से फिर से बनाने की ज़रूरत नहीं होती.
इसके बजाय, ऐक्टिविटी चालू रहती हैं और
onConfigurationChanged() कॉलबैक के ज़रिए अपडेट मिलती हैं.
कॉन्फ़िगरेशन में होने वाले खास बदलावों में ये शामिल हैं:
CONFIG_KEYBOARDCONFIG_KEYBOARD_HIDDENCONFIG_NAVIGATIONCONFIG_TOUCHSCREENCONFIG_COLOR_MODECONFIG_UI_MODE(सिर्फ़ तब, जब यूज़र इंटरफ़ेस (यूआई) मोड,UI_MODE_TYPE_DESKमें बदलता है याUI_MODE_TYPE_DESKसे किसी दूसरे टाइप में बदलता है)
अगर आपका ऐप्लिकेशन, इन बदलावों के लिए संसाधनों को रीलोड करने के लिए, पूरी तरह से रीस्टार्ट होने पर निर्भर करता है, तो अब आपको मेनिफ़ेस्ट फ़ाइल में android:recreateOnConfigChanges एट्रिब्यूट का इस्तेमाल करके, पुराने तरीके के लिए साफ़ तौर पर ऑप्ट-इन करना होगा.
इस एट्रिब्यूट की मदद से, यह तय किया जा सकता है कि कॉन्फ़िगरेशन में होने वाले किन बदलावों की वजह से, ऐक्टिविटी पूरी तरह से बंद हो, खत्म हो, और फिर से बनाई जाए. उदाहरण के लिए:
<activity
android:name=".MyActivity"
android:recreateOnConfigChanges="keyboard|keyboardHidden|navigation|colorMode|touchscreen|...">
...
</activity>
कॉन्फ़िगरेशन में होने वाले बदलावों पर प्रतिक्रिया देना
Jetpack Compose की मदद से, आपका ऐप्लिकेशन कॉन्फ़िगरेशन में होने वाले बदलावों पर आसानी से प्रतिक्रिया दे सकता है.
हालांकि, अगर आपने कॉन्फ़िगरेशन में होने वाले उन सभी बदलावों के लिए, Activity को फिर से बनाने की सुविधा बंद कर दी है जिनके लिए ऐसा किया जा सकता है, तो भी आपके ऐप्लिकेशन को कॉन्फ़िगरेशन में होने वाले बदलावों को सही तरीके से हैंडल करना होगा.
The Configuration ऑब्जेक्ट, Compose यूज़र इंटरफ़ेस (यूआई) के क्रम में, with
the LocalConfiguration कंपोज़िशन लोकल के साथ उपलब्ध है. जब भी यह बदलता है, तो LocalConfiguration.current से पढ़ने वाले कंपोज़ेबल फ़ंक्शन फिर से कंपोज़ होते हैं. कंपोज़िशन लोकल कैसे काम करते हैं, इस बारे में जानकारी के लिए, CompositionLocal की मदद से स्थानीय तौर पर स्कोप किया गया डेटा लेख पढ़ें.
उदाहरण
यहां दिए गए उदाहरण में, एक कंपोज़ेबल, खास फ़ॉर्मैट में तारीख दिखाता है.
यह कंपोज़ेबल, LocalConfiguration.current के साथ
ConfigurationCompat.getLocales को कॉल करके, सिस्टम की स्थानीय भाषा के कॉन्फ़िगरेशन में होने वाले बदलावों पर प्रतिक्रिया देता है.
@Composable
fun DateText(year: Int, dayOfYear: Int) {
val dateTimeFormatter = DateTimeFormatter.ofPattern(
"MMM dd",
ConfigurationCompat.getLocales(LocalConfiguration.current)[0]
)
Text(
dateTimeFormatter.format(LocalDate.ofYearDay(year, dayOfYear))
)
}
स्थानीय भाषा बदलने पर, Activity को फिर से बनाने से बचने के लिए, Compose कोड को होस्ट करने वाली Activity को, स्थानीय भाषा के कॉन्फ़िगरेशन में होने वाले बदलावों से ऑप्ट आउट करना होगा. ऐसा करने के लिए, android:configChanges को locale|layoutDirection पर सेट करें.
कॉन्फ़िगरेशन में होने वाले बदलाव: ज़रूरी कॉन्सेप्ट और सबसे सही तरीके
कॉन्फ़िगरेशन में होने वाले बदलावों पर काम करते समय, आपको इन ज़रूरी कॉन्सेप्ट के बारे में पता होना चाहिए:
- कॉन्फ़िगरेशन: डिवाइस के कॉन्फ़िगरेशन से यह तय होता है कि यूज़र इंटरफ़ेस (यूआई), उपयोगकर्ता को कैसे दिखेगा. जैसे, ऐप्लिकेशन का डिसप्ले साइज़, स्थानीय भाषा या सिस्टम की थीम. Compose में,
LocalConfigurationका इस्तेमाल करके, कॉन्फ़िगरेशन वैल्यू को ऐक्सेस किया जा सकता है. - कॉन्फ़िगरेशन में होने वाले बदलाव: उपयोगकर्ता के इंटरैक्शन की वजह से, कॉन्फ़िगरेशन में बदलाव होते हैं. उदाहरण के लिए, उपयोगकर्ता डिवाइस की सेटिंग बदल सकता है या डिवाइस के साथ इंटरैक्ट करने का तरीका बदल सकता है. कॉन्फ़िगरेशन में होने वाले बदलावों को रोकने का कोई तरीका नहीं है.
Activityको फिर से बनाना: डिफ़ॉल्ट रूप से, कॉन्फ़िगरेशन में होने वाले बदलावों की वजह से,Activityको फिर से बनाया जाता है. यह, नए कॉन्फ़िगरेशन के लिए, ऐप्लिकेशन की स्थिति को फिर से शुरू करने का एक इन-बिल्ट मैकेनिज़्म है.Activityको खत्म करना:Activityको फिर से बनाने की वजह से, सिस्टम पुरानेActivityइंस्टेंस को खत्म कर देता है और उसकी जगह एक नया इंस्टेंस बनाता है. पुराना इंस्टेंस अब काम का नहीं रहता. लाइफ़साइकल के दायरे वाले ऑब्जेक्ट के रेफ़रंस को, उनके तय दायरे से बाहर बनाए रखने से बचें.- स्थिति: पुराने
Activityइंस्टेंस में मौजूद स्थिति, नएActivityइंस्टेंस में मौजूद नहीं होती, क्योंकि ये दो अलग-अलग ऑब्जेक्ट इंस्टेंस होते हैं. स्थिति को ऐक्टिविटी से जोड़ने के बजाय, ऐप्लिकेशन और उपयोगकर्ता की स्थिति को बनाए रखने के लिए, सुझाए गए एपीआई का इस्तेमाल करें. इसके बारे में, यूज़र इंटरफ़ेस (यूआई) की स्थिति सेव करना लेख में बताया गया है. - ऑप्ट-आउट करना: कॉन्फ़िगरेशन में होने वाले किसी बदलाव के लिए, ऐक्टिविटी को फिर से बनाने की सुविधा से ऑप्ट-आउट करने के लिए, यह ज़रूरी है कि आपका ऐप्लिकेशन, नए कॉन्फ़िगरेशन के हिसाब से सही तरीके से अपडेट हो.
उपयोगकर्ता को बेहतर अनुभव देने के लिए, इन सबसे सही तरीकों का पालन करें:
- कॉन्फ़िगरेशन में होने वाले बार-बार के बदलावों के लिए तैयार रहें: यह न मान लें कि कॉन्फ़िगरेशन में होने वाले बदलाव कम होते हैं या कभी नहीं होते. भले ही, एपीआई लेवल, फ़ॉर्म फ़ैक्टर या यूज़र इंटरफ़ेस (यूआई) टूलकिट कोई भी हो. जब कोई उपयोगकर्ता कॉन्फ़िगरेशन में बदलाव करता है, तो वह उम्मीद करता है कि ऐप्लिकेशन अपडेट हों और नए कॉन्फ़िगरेशन के साथ सही तरीके से काम करते रहें.
- स्थिति को बनाए रखें:
Activityको फिर से बनाने के दौरान, उपयोगकर्ता की स्थिति को न खोएं. एपीआई का इस्तेमाल करके, स्थिति को बनाए रखें. जैसे,ViewModelऔरrememberSaveable. इसके बारे में, यूज़र इंटरफ़ेस (यूआई) की स्थिति सेव करना लेख में बताया गया है. - जल्दी ठीक करने के लिए, ऑप्ट-आउट न करें: स्थिति के खोने से बचने के लिए, शॉर्टकट के तौर पर,
Activityको फिर से बनाने की सुविधा से ऑप्ट-आउट न करें. ऐक्टिविटी को फिर से बनाने की सुविधा से ऑप्ट-आउट करने के लिए, आपको बदलाव को हैंडल करने का वादा पूरा करना होगा. साथ ही,Activityको फिर से बनाने की वजह से, स्थिति अब भी खो सकती है. ऐसा कॉन्फ़िगरेशन में होने वाले अन्य बदलावों, प्रोसेस खत्म होने या ऐप्लिकेशन बंद करने की वजह से हो सकता है.Activityको फिर से बनाने की सुविधा को पूरी तरह से बंद करना मुमकिन नहीं है. स्थिति को बनाए रखने के बारे में, यूज़र इंटरफ़ेस (यूआई) की स्थिति सेव करना लेख पढ़ें. - कॉन्फ़िगरेशन में होने वाले बदलावों से न बचें: कॉन्फ़िगरेशन में होने वाले बदलावों और
Activityको फिर से बनाने से बचने के लिए, स्क्रीन की दिशा, आसपेक्ट रेशियो या साइज़ बदलने की सुविधा पर पाबंदियां न लगाएं. इससे उन उपयोगकर्ताओं पर बुरा असर पड़ता है जो आपके ऐप्लिकेशन का इस्तेमाल अपनी पसंद के हिसाब से करना चाहते हैं.
साइज़ के हिसाब से कॉन्फ़िगरेशन में होने वाले बदलावों को हैंडल करना
साइज़ के हिसाब से कॉन्फ़िगरेशन में होने वाले बदलाव किसी भी समय हो सकते हैं. ऐसा तब ज़्यादा होता है जब आपका ऐप्लिकेशन बड़ी स्क्रीन वाले डिवाइस पर चलता है और उपयोगकर्ता मल्टी-विंडो मोड में जा सकते हैं. वे उम्मीद करते हैं कि आपका ऐप्लिकेशन उस एनवायरमेंट में सही तरीके से काम करे.
साइज़ में होने वाले बदलाव आम तौर पर दो तरह के होते हैं: बड़े और छोटे. बड़े साइज़ में होने वाला बदलाव वह होता है जिसमें स्क्रीन के साइज़ में अंतर की वजह से, नए कॉन्फ़िगरेशन पर वैकल्पिक संसाधनों का एक अलग सेट लागू होता है. जैसे, चौड़ाई, ऊंचाई या सबसे कम चौड़ाई. इन संसाधनों में, वे संसाधन शामिल होते हैं जिन्हें ऐप्लिकेशन खुद तय करता है और वे संसाधन भी शामिल होते हैं जो उसकी किसी भी लाइब्रेरी से मिलते हैं.
साइज़ के हिसाब से कॉन्फ़िगरेशन में होने वाले बदलावों के लिए, ऐक्टिविटी को फिर से बनाने की सुविधा को सीमित करना
साइज़ के हिसाब से कॉन्फ़िगरेशन में होने वाले बदलावों के लिए, Activity को फिर से बनाने की सुविधा बंद करने पर, सिस्टम Activity को फिर से नहीं बनाता. इसके बजाय, इसे
Activity.onConfigurationChanged पर कॉल मिलता है. LocalConfiguration.current को पढ़ने वाले सभी कंपोज़ेबल, नए साइज़ को दिखाने के लिए अपने-आप फिर से कंपोज़ होते हैं.
जब आपकी मेनिफ़ेस्ट फ़ाइल में
android:configChanges="screenSize|smallestScreenSize|orientation|screenLayout"
होता है, तब साइज़ के हिसाब से कॉन्फ़िगरेशन में होने वाले बदलावों के लिए, Activity को फिर से बनाने की सुविधा बंद कर दी जाती है.
अन्य संसाधन
कॉन्फ़िगरेशन में होने वाले बदलावों को हैंडल करने के बारे में ज़्यादा जानकारी के लिए, ये अन्य संसाधन देखें: