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