2010-11-14 11 views
7

दोस्तों,एंड्रॉइड मेमोरी लीक पॉइंट स्पष्ट नहीं हैं!

मैंने एंड्रॉइड में मेमोरी लीक से बचने के लिए संबंधित पूरा लेख पढ़ा है। http://developer.android.com/resources/articles/avoiding-memory-leaks.html

अभी

1) मैं निजी नेस्टेड वर्ग स्थिर नहीं

अगर मैं कि नेस्टेड वर्ग स्थिर यह उपयोगी हो जाएगा बनाने का उपयोग कर रहा हूँ?

2) आलेख कहता है यदि आप इनर क्लासेस या बेनामी क्लासेस का उपयोग करने वाले हैं, तो ध्यान से सोचें। बेनामी क्लासेस का उपयोग न करें जब तक आप बहुत यकीन न करें और साबित कर सकें कि वे मेमोरी लीक नहीं कर रहे हैं।

क्या कोई मुझे इसका उदाहरण दे सकता है? कौन सा अच्छा दृष्टिकोण है और मेमोरी लीक के लिए कौन सा बुरा है।

किसी भी मदद की सराहना की जाएगी।

+0

मैं दूसरा हूं, मैंने लेख को कई बार पढ़ा है और अभी भी अनिश्चित हूं कि मुझे अपने ऐप में लीक को रोकने के लिए वास्तव में क्या करना चाहिए। क्या मुझे अपने ऐप में प्रत्येक ड्रॉ करने योग्य का संदर्भ रखना है और इसके कॉलबैक को शून्य पर सेट करना है ?? मुझे क्या करना चाहिए, लेख वास्तव में कुछ और उदाहरण प्रदान करना चाहिए कि यह एक विषय कितना महत्वपूर्ण है। – marchinram

+0

हाँ ठीक है मैं उलझन में हूं, उदाहरण बहुत स्पष्ट नहीं हैं और अधिक स्पष्टीकरण की आवश्यकता है। – UMAR

उत्तर

1

1) मैं सामान्य रूप से स्थिर कक्षाओं का उपयोग करने से बचूंगा। विशेष रूप से यदि आपको संदर्भ सूचक में पास करने की आवश्यकता है, क्योंकि इससे रिसाव हो जाएगा। जब तक आप स्थिर वर्गों को स्थिरांक पर न रखें, वे वैश्विक चर के समान हैं और थोड़े से एंड्रॉइड आर्किटेक्चर को बाधित करते हैं जो गतिविधियों को कम करने के लिए है।

विशेष रूप से आप स्थाई उदाहरण या एंड्रॉइड फ्रेमवर्क ऑब्जेक्ट्स को स्थिर के रूप में घोषित नहीं करना चाहते हैं। यह उनके जीवनकाल को गड़बड़ कर देता है।

2) मैंने विशेष रूप से अनाम कक्षाओं के साथ कोई समस्या नहीं देखी है। आप कुछ मामलों में एक संदर्भ चर को रिसाव करने में सक्षम हो सकते हैं, लेकिन एक धागे पर करना मुश्किल है। आसपास के संदर्भ को पार करते समय, आप getAplicationContext() का उपयोग कर लीक को सीमित कर सकते हैं, जो वैश्विक संदर्भ देता है जो रिसाव नहीं करेगा।

आशा है कि इससे मदद मिलती है!

+0

यह धागा भी देखें: http://code.google.com/p/android/issues/detail?id=8488 – swinefeaster

+0

मुझे नहीं पता कि आपको कोई परेशानी हो रही है, लेकिन मुझे समाधान में गिरावट मिली है जो मानक एंड्रॉइड कक्षाओं के साथ सभी एंड्रॉइड मेमोरी लीक मुद्दों को ठीक करता है: http://code.google.com/p/android/issues/detail?id=8488#c51 – swinefeaster

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