2012-01-11 19 views
5

में एक बिटमैप संसाधन संग्रहीत करना मेरे पास एक दृश्य है जो एक छोटा बिटमैप प्रदर्शित करता है, और इसका उपयोग मेरे आवेदन (विशेष रूप से सूची दृश्य) में कई स्थानों पर किया जाता है। मैं वर्तमान में इस बिटमैप को लोड कर रहा हूं हर बार उस दृश्य का उदाहरण BitmapFactory.decodeResource(resource, id) का उपयोग करके बनाया गया है। मुझे एहसास हुआ कि मैं उस बिटमैप को स्थिर वैरिएबल में लोड करके प्रदर्शन में सुधार कर सकता हूं (ताकि दृश्य के सभी उदाहरण इसे पुन: उपयोग कर सकें) और वास्तव में प्रति दृश्य उदाहरण के बारे में 2-4 एमएस बचाए। मेरा सवाल है, इस तरह से एक स्थिर चर का उपयोग कर एंड्रॉइड में किसी भी प्रकार की मेमोरी रिसाव का कारण बनता है? मुझे चिंता है क्योंकि मुझे ऐसा कोई अन्य उदाहरण नहीं मिला है जो इस तरह बिटमैप स्टोर करने के लिए स्थिर चर का उपयोग करता है।एक स्थिर चर

अनुवर्ती प्रश्न:How to keep a Bitmap in memory

+2

पर सरकारी दस्तावेजों को देखने, देखने ड्रॉबल पर कॉलबैक के रूप में सेट किया गया है। उपरोक्त कोड स्निपेट में, इसका मतलब है कि ड्रॉबल के पास टेक्स्ट व्यू का संदर्भ है, जिसमें स्वयं गतिविधि (संदर्भ) का संदर्भ है, जिसमें बदले में बहुत कुछ भी संदर्भ है (आपके आधार पर कोड।) "... इसलिए इसे स्थैतिक में रखने से स्मृति रिसाव हो रहा है। – Nitin

+1

धन्यवाद @ 0cool, मैंने उस पोस्ट को देखा है लेकिन मुझे यकीन नहीं है कि 'android.graphics.Bitmap' (' android.graphics.drawable.BitmapDrawable' नहीं) भी एक 'ड्रायबल' है। क्या वास्तव में यह मामला है? –

+0

हाय, @AbdullahJibaly क्या हमें बिटमैप का उपयोग करने से पहले कुछ आयात या विस्तार करने की आवश्यकता है? जैसा कि मैं 'बिटमैप डिवाइस कर रहा हूं; 'और मेरा आईडीई एक त्रुटि दे रहा है कि _Bitmap को टाइप_ में हल नहीं किया जा सकता है। अग्रिम में धन्यवाद। – Learner

उत्तर

1

बिटमैप वस्तुओं रखते हुए के रूप में स्थिर संभावित मेमोरी लीक हो सकती है, रोमेन आदमी "के हवाले से जब एक Drawable एक दृश्य से जुड़ा हुआ है http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html

+3

धन्यवाद @calvin, मुझे नहीं पता था कि 'बिटमैप' एक 'ड्रायरेबल' है क्योंकि क्लास पदानुक्रम में कोई संबंध नहीं प्रतीत होता है। बस स्पष्ट होने के लिए मैं 'android.graphics.Bitmap' का उपयोग कर रहा हूं 'android.graphics.drawable.BitmapDrawable'। यदि एक ही चेतावनी लागू होती है, तो इस समस्या का सबसे सीधा समाधान क्या है? –

+0

प्रश्न का पालन करें: http://stackoverflow.com/questions/8824004/how-to-keep-a-bitmap-in-memory –

+0

एक बिटमैप * ड्रॉइंग नहीं है, इसलिए यह उत्तर गलत है, या कम से कम लिंक की सामग्री द्वारा समर्थित नहीं है। –

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