17

मेरे पास एक ऐसी गतिविधि है जिसे अभिविन्यास परिवर्तन के बाद पुनर्निर्मित नहीं किया जाना चाहिए। मैंने मैनिफेस्ट में गतिविधि घोषणा के लिए निम्नलिखित जोड़ा:हनीकॉम में अभिविन्यास परिवर्तन

android:configChanges="orientation" 

एंड्रॉइड 2.3 पर यह पूरी तरह से काम करता है। HONEYCOMB_MR2onCreate पर ओरिएंटेशन बदलने पर वैसे भी कहा जाता है।

क्या कोई अन्य चीज है जो अभिविन्यास परिवर्तन के बाद गतिविधि को पुनर्जीवित करने से रोकने के लिए HONEYCOMB_MR2 पर कुछ और करने की आवश्यकता है?

+0

क्या आपने 'android: configChanges =" keyboardHidden | ओरिएंटेशन "की कोशिश की है? मैं उम्मीद नहीं करता कि इससे कोई फर्क पड़ता है, लेकिन यह कोशिश करने लायक है। – CommonsWare

+0

@ कॉमन्सवेयर यह नहीं करता है, लेकिन उन सभी संभावित मूल्यों को आजमा रहा है जो मुझे मिलते हैं। मेरा जवाब देखें – hpique

उत्तर

37

जाहिर है orientation|screenSize (?) onCreate को हनीकॉम पर रोकता है और (अब तक) पिछले एंड्रॉइड संस्करणों में कुछ भी तोड़ने वाला प्रतीत नहीं होता है।

android:configChanges="orientation|screenSize" 

कोई विचार क्यों यह आवश्यक है और मैं वास्तव में समझ में नहीं आता इस नए मूल्य के बारे में documentation

मुझे संदेह है कि एक अभिविन्यास पर HONEYCOMB_MR2 में गतिविधि को दो कॉन्फ़िगरेशन परिवर्तनों के रूप में माना जाता है: अभिविन्यास और स्क्रीन आकार। और दोनों डिफ़ॉल्ट रूप से गतिविधि को फिर से बनाने का प्रयास करते हैं।

+0

हाँ, वे नए हैं। आपका 'एंड्रॉइड: targetSdkVersion' मान क्या है? – CommonsWare

+0

एंड्रॉइड: targetSdkVersion = "13" – hpique

+2

ठीक है, ठीक है, जो डॉक्स कहता है उसे ट्रिगर करेगा। इसे उन नए संसाधन सेट क्वालीफायरों के साथ करना है: http://android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html मूल रूप से, क्योंकि उन्होंने पूर्व छोटे/सामान्य का विस्तार किया आयामों के आधार पर संसाधन सेट को शामिल करने के लिए/बड़े/xlarge और बंदरगाह/भूमि सामग्री, वे उन आयामों में परिवर्तनों को कॉन्फ़िगरेशन परिवर्तनों पर विचार करने पर विचार करेंगे। निश्चित रूप से, ऐसे डिवाइस हो सकते हैं जहां वे आयाम अभिविन्यास से नहीं बदलते हैं (उदाहरण के लिए, द्वितीय स्क्रीन टॉगल-सक्षम/बंद के साथ दोहरी स्क्रीन डिवाइस)। – CommonsWare

संबंधित मुद्दे