के साथ "रीसाइक्लिंग बिटमैप" त्रुटि का उपयोग करने का प्रयास: मेरा ऐप काफी बड़ी छवियों को लोड कर सकता है। स्मृति-रूढ़िवादी करने के प्रयास में, मैं लोड करने के लिए एक अस्थायी बिटमैप उपयोग करने का प्रयास कर रहा हूँ और एक अन्य परिवर्तन के बाद अंतिम छवि के लिए:एंड्रॉइड: अस्थायी बिटमैप्स
.....
finalBitmap.recycle();
finalBitmap = null;
Bitmap tempBitmap = BitmapFactory.decodeStream(fin, ...);
finalBitmap = Bitmap.createBitmap(tempBitmap, ....);
imgview.setImageBitmap(finalBitmap);
.....
अब, इस बिंदु पर हम tempBitmap, जो था पूरे कर चुके हैं केवल बिटकमैप बनाने में परिवर्तन चरण में डीकोडेड बिटमैप को परिवहन करने की आवश्यकता है। तो:
.....
tempBitmap.recycle();
tempBitmap = null;
.....
और ... यह एक "एक पुनर्नवीनीकरण बिटमैप का उपयोग करने की कोशिश कर" विशेष रूप से tempBitmap की रीसाइक्लिंग की वजह से त्रुटि के साथ दुर्घटनाओं। tempBitmap प्रदर्शित नहीं किया गया था और केवल का उपयोग किया गया है।
क्या गलत हो रहा है? मैं सिर्फ "finalBitmap" का उपयोग करना चाहिए भर में और createBitmap पर भरोसा करते हैं तो इसे प्रबंधित करने (finalBitmap = Bitmap.createBitmap (finalBitmap, ....))? मैं यह देखने में असफल रहा कि tempBitmap पर चल रही निर्भरता क्या होगी जिससे ऐसी विफलता होगी।
संपादित करें: हाँ, अशक्त काम उचित, अंतिम कचरा संग्रहण में परिणाम लगता है, लेकिन मैं क्यों रीसायकल() एक अस्थायी बिटमैप पर इस मामले में तो समस्याग्रस्त है के रूप में चक्कर में पड़ कर रहा हूँ। मुझे लगता है कि बिटमैप() को संदर्भित किया जा रहा है, लेकिन क्यों, और कितनी देर तक?
मुझे इसके बारे में थोड़ा सा याद आया संभावित रूप से एक ही वस्तु है। अस्थायी रूप से मेरी सेटिंग को साइड इफेक्ट्स का कारण नहीं बनता है क्योंकि यह वास्तव में ऑब्जेक्ट को रिलीज़ नहीं करता है, जबकि रीसायकल() सीधे इसे प्रभावित करता है। हम्म। मैं आपका जवाब स्वीकार करता हूं और आशा करता हूं कि आप मुझे मेरे प्रश्न को ऊपर उठाने का पक्ष करेंगे (क्योंकि मुझे लगता है कि यह लोगों के लिए जानकारी का एक उपयोगी हिस्सा है)। – MartyMacGyver