सबसे पहले, मेरी पोस्ट की जाँच करें पर बनाए हुए टुकड़े। यह मदद कर सकता है।
अब आपके सवालों के जवाब देने के लिए:
टुकड़ा भी अपने को बनाए रखने करता है दृश्य राज्य, या इस विन्यास परिवर्तन पर निर्मित किया जाएगा - वास्तव में क्या है "को बनाए रखा?"
हां, Fragmentकॉन्फ़िगरेशन परिवर्तन के दौरान राज्य को बरकरार रखा जाएगा। विशेष रूप से, "बरकरार" का अर्थ है कि कॉन्फ़िगरेशन परिवर्तनों पर टुकड़ा नष्ट नहीं होगा । यही कारण है, Fragmentहो जाएगा बनाए रखा , भले ही विन्यास परिवर्तन अंतर्निहित कारणों Activityनष्ट हो।
जब उपयोगकर्ता गतिविधि छोड़ देता है तो क्या टुकड़ा नष्ट हो जाएगा?
स्मृति संसाधन कम होने पर सिस्टम की तरह Activitys Fragmentनष्ट हो सकता है। चाहे आपके पास आपके टुकड़े हों, अपनी आवृत्ति स्थिति को बनाए रखने के लिए कॉन्फ़िगरेशन परिवर्तन भर में कोई प्रभाव नहीं पड़ेगा कि क्या सिस्टम Fragmentआपके द्वारा छोड़ने के बाद एस को नष्ट कर देगा या नहीं Activity। यदि आप Activity(यानी होम बटन दबाकर) छोड़ देते हैं , तो Fragmentएस नष्ट हो सकता है या नहीं। यदि आप Activityबैक बटन दबाकर छोड़ते हैं (इस प्रकार, कॉलिंग finish()और प्रभावी रूप से नष्ट करने के लिए Activity), तो सभी Activityसंलग्न Fragmentएस भी नष्ट हो जाएंगे।
यह बैक स्टैक पर टुकड़ों के साथ काम क्यों नहीं करता है?
संभवतः कई कारण हैं कि इसका समर्थन क्यों नहीं किया गया है, लेकिन मेरे लिए सबसे स्पष्ट कारण यह है कि इसका Activityसंदर्भ है FragmentManager, और FragmentManagerबैकस्ट का प्रबंधन करता है। यही है, अगर आप अपने Fragments या नहीं बनाए रखने के लिए चुनते हैं, तो कोई बात नहीं, Activity(और इस प्रकार FragmentManager'बैकस्टैक) एक कॉन्फ़िगरेशन परिवर्तन पर नष्ट हो जाएगा। एक और कारण है कि यह काम नहीं कर सकता है क्योंकि चीजें मुश्किल हो सकती हैं यदि दोनों खंडों को बनाए रखा जाए और गैर-बनाए गए टुकड़ों को एक ही बैकस्टैक पर मौजूद होने की अनुमति दी जाए।
वे कौन से उपयोग मामले हैं जहां यह इस पद्धति का उपयोग करने के लिए समझ में आता है?
राज्य की सूचनाओं को फैलाने के लिए, विशेष रूप से थ्रेड प्रबंधन - गतिविधि के उदाहरणों में, सेवानिवृत्त टुकड़े काफी उपयोगी हो सकते हैं। उदाहरण के लिए, एक टुकड़ा एक मेजबान के रूप में Threadया AsyncTaskइसके संचालन के प्रबंधन के लिए सेवा कर सकता है । देखें मेरे ब्लॉग पोस्ट में अधिक जानकारी के लिए इस विषय पर।
सामान्य तौर पर, मैं इसके onConfigurationChangedसाथ उपयोग करने के लिए उसी तरह का व्यवहार करूंगा Activity... इसे केवल एक बंद के रूप में उपयोग न करें क्योंकि आप उन्मुखीकरण परिवर्तन को सही ढंग से लागू करने / संभालने के लिए बहुत आलसी हैं। जरूरत पड़ने पर ही इसका इस्तेमाल करें।