2013-01-18 20 views
5

मुझे स्मृति रिसाव का सामना करना पड़ रहा है क्योंकि कुछ टुकड़े नहीं हटाए जाते हैं। मेरे पास ऐसी गतिविधि है जो फ्रैगमेंट एफ 1 के साथ दृश्य को पॉप्युलेट करती है। इस खंड में ViewPager और FragmentStatePagerAdapter इसके साथ जुड़े हुए हैं। एडाप्टर एक और टुकड़ा F2 के साथ पेजर महसूस कर रहा है। समस्या तब होती है जब गतिविधि में मैं फ्रैगमेंट एफ 1 को हटा देता हूं। मौजूदा टुकड़े F2 हटाए नहीं गए हैं।FragmentStatePagerAdapter खंडों को हटा नहीं रहा है यदि पैरेंट खंड हटा दिया गया है

कोई सुझाव?

उत्तर

0

मुझे एक ही समस्या है। अपने टुकड़े F1 को एक गतिविधि में वापस ले जाने का प्रयास करें। यह आपको यह निर्धारित करने में मदद कर सकता है कि समस्या एक टुकड़े में एक टुकड़ा है या नहीं। एंड्रॉइड वास्तव में ऐसा नहीं है। अगर मुझे आपकी तरफ कुछ मिल जाए, तो मैं आपको

2

सुनिश्चित नहीं करता कि यह एक ही समस्या है, लेकिन कुछ समय पहले मुझे व्यूपेजर के साथ समस्या थी जहां टुकड़ा जीवन चक्र विधियों को कभी नहीं बुलाया गया था और समस्या के साथ समस्या थी खंड प्रबंधक

तो, जब आप एडाप्टर बनाते हैं तो समर्थन के बजाय बच्चेफ्रैगमेंट मैनेजर को पास करने का प्रयास करें FagmentManager और देखें कि यह आपकी समस्या को हल करता है या नहीं।

0

मुझे यहां एक ही समस्या का सामना करना पड़ रहा था। एक "सही" तरीके से इसे सही करने के तरीके के बारे में लंबे समय तक शोध करने के बाद मैं इसे काम नहीं कर सका। इसलिए मुझे अपनी गतिविधि से F1 अभिभावक खंड (एक टुकड़े लेनदेन के साथ) को हटाने से पहले सभी F2 के टुकड़े स्पष्ट रूप से रिलीज़ करने के लिए मजबूर होना पड़ा।

// Remove all content from the FragmentStatePagerAdapter instance. 
myAdapter.Content.Clear(); // Content here may be an ArrayList in Java or a List in C#. 
myAdapter.NotifyDataSetChanged(); 

// Reset current empty adapter inside the ViewPager (this will make all existing F2 fragments to be released). 
myViewPager.Adapter = myAdapter; 

// Do the transaction removing the parent F1 fragment from the main Activity. 
FragmentManager.BeginTransaction()... 

इन कदमों का अनुसरण करके सभी F2 टुकड़े प्रपत्र स्मृति जारी किया जा रहा शुरू कर दिया और वे भी कर रहे हैं उनके OnPause, OnDestroyView ... OnDestroy कॉलबैक के रूप में अच्छी तरह से लागू किया जा रहा है।