2010-03-19 31 views
5

मैं ऐसी गतिविधि बनाना चाहता हूं जो कुछ शर्त पर अभिविन्यास परिवर्तन की अनुमति दे, लेकिन अन्यथा नहीं। पृष्ठभूमि थ्रेड व्यस्त होने पर मैं वास्तव में गतिविधि को पुनरारंभ करना रोकना चाहता हूं।गतिविधि पर सशर्त पुनरारंभ करें कॉन्फ़िगरेशन चेंज

मैंने गतिविधि मेनिफेस्ट पर configChanges विशेषता डाली है, और onConfigurationChanged को ओरिएंटेशन बदलते समय बुलाया जाता है। हालांकि मैं की अनुमति देते समय ऐप को ओरिएंटेशन बदलने की अनुमति देना चाहता हूं।

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (orientationChangeAllowed) { 
     // how do I restart this activity? 
    } else { 
     // don't do anything 
    } 
} 

उत्तर

7

अगर यह कॉल setRequestedOrientation() अनुमति दी गई है, जब यह अनुमति नहीं है, कुछ भी नहीं।

एक टिप के रूप में: आप onRetainNonConfigurationInstance() और getLastNonConfigurationInstance() का उपयोग कर सकते हैं और AsyncThread लौटा सकते हैं (एक ऑब्जेक्ट)। इस प्रकार Activity जब उपयोगकर्ता चाहता है तो अभिविन्यास बदल जाएगा। हालांकि ध्यान दें: आपको Context के संदर्भ को रिसाव नहीं करना चाहिए (यह आपके Activity या Drawable, ... का संदर्भ हो सकता है।

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

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