अप्रैल 2013 को अपडेट करें: ऐसा न करें। 2009 में यह एक अच्छा विचार नहीं था जब मैंने पहली बार सवाल का जवाब दिया था और यह वास्तव में अब एक अच्छा विचार नहीं है। इस जवाब को हैकबॉड द्वारा कारणों के लिए देखें:
Android में अभिविन्यास परिवर्तन पर एसिंक्टस्क के साथ पुनः लोड करने की गतिविधि से बचें
android:configChanges="keyboardHidden|orientation"
अपने AndroidManifest.xml में जोड़ें । यह सिस्टम को बताता है कि आप अपने आप को संभालने के लिए क्या कॉन्फ़िगरेशन बदलते हैं - इस मामले में कुछ भी नहीं करने से।
<activity android:name="MainActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation">
अधिक विवरण के लिए डेवलपर संदर्भ कॉन्फिगरेशन देखें।
हालाँकि, आपके एप्लिकेशन को किसी भी समय बाधित किया जा सकता है, उदाहरण के लिए, फ़ोन कॉल द्वारा, इसलिए आपको अपने आवेदन की स्थिति को बचाने के लिए कोड जोड़ना चाहिए जब इसे रोका जाता है।
अद्यतन: Android 3.2 के रूप में, आपको "स्क्रीनसेज़" भी जोड़ना होगा:
<activity
android:name="MainActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize">
डेवलपर गाइड से कॉन्फ़िगरेशन को संभालना स्वयं को बदलें
सावधानी: एंड्रॉइड 3.2 (एपीआई स्तर 13) के साथ शुरुआत, "स्क्रीन आकार" भी बदलता है जब डिवाइस पोर्ट्रेट और लैंडस्केप ओरिएंटेशन के बीच स्विच करता है। इस प्रकार, यदि आप एपीआई स्तर 13 या उच्चतर (जैसा कि minSdkVersion और targetSdkVersion विशेषताओं द्वारा घोषित किया गया है) के लिए विकसित होने पर अभिविन्यास परिवर्तन के कारण रनटाइम पुनरारंभ को रोकना चाहते हैं, तो आपको "ओरिएंटेशन" मान के अतिरिक्त "स्क्रीनसेज़" मान को शामिल करना होगा। यानी आपको घोषित करना होगा
android:configChanges="orientation|screenSize"
। हालाँकि, यदि आपका एप्लिकेशन API स्तर 12 या उससे कम लक्ष्य करता है, तो आपकी गतिविधि हमेशा इस कॉन्फ़िगरेशन परिवर्तन को स्वयं संभालती है (यह कॉन्फ़िगरेशन परिवर्तन आपकी गतिविधि को पुनरारंभ नहीं करता है, यहां तक कि एंड्रॉइड 3.2 या उच्चतर डिवाइस पर चलने पर भी)।