मैं आलेख http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html से गुजर चुका हूं। इस लेख में एक वीक रेफरेंस के साथ एक स्थिर आंतरिक कक्षा का उपयोग करने का सुझाव दिया जाता है। घटना श्रोताओं के लिए कई आंतरिक कक्षाओं का उपयोग किया जाता है। क्या वे भीतरी कक्षा मेमोरी लीक का कारण बन सकती है? क्या उन आंतरिक वर्ग को स्थैतिक होना चाहिए?इवेंट श्रोता में मेमोरी रिसाव
उत्तर
क्या वे भीतरी कक्षा मेमोरी रिसाव का कारण बन सकती है?
संभवतः। यह इस बात पर निर्भर करता है कि उन श्रोताओं पर क्या पंजीकृत है।
उदाहरण के लिए, एक अच्छी तरह से लिखा OnClickListener
एक Button
के लिए एक स्मृति रिसाव में परिणाम नहीं चाहिए, क्योंकि भले ही OnClickListener
एक आंतरिक वर्ग हो सकता है और Activity
को एक अंतर्निहित संदर्भ हो सकता है, वस्तुओं के पूरे सेट सब सिर्फ हैं गतिविधि से बंधे हैं। इसलिए, जब गतिविधि नष्ट हो जाती है, गतिविधि, Button
, और OnClickListener
सभी कचरे से एकत्र हो सकते हैं।
हालांकि, LocationListener
, LocationManager
सिस्टम सेवा के साथ पंजीकृत, प्रक्रिया द्वारा आयोजित किया जाता है। इसलिए, भले ही गतिविधि नष्ट हो जाए, श्रोता पंजीकृत रहेगा। यदि वह श्रोता एक आंतरिक वर्ग है, तो यह गतिविधि के लिए एक निहित संदर्भ जारी रखेगा, और आपके पास स्मृति रिसाव होगी।
क्या इन आंतरिक वर्ग को स्टेइक होना चाहिए?
संभवतः। ज्यादातर मामलों में, सही उत्तर यह है कि "यदि आप यूआई के अलावा अन्य श्रोता पंजीकृत कर रहे हैं, तो उचित बिंदु पर इसे अनियंत्रित करना सुनिश्चित करें"। उस मामले में, कोई रिसाव नहीं होगा।
क्या कोई मुझे कोई उदाहरण कोड दे सकता है कि ईवेंट श्रोता रिसाव-सबूत का उपयोग कैसे कर सकता है।
सार में नहीं, नहीं।
- 1. जावास्क्रिप्ट इवेंट श्रोता प्रदर्शन
- 2. एंड्रॉइड कस्टम इवेंट श्रोता
- 3. मेमोरी रिसाव जोखिम
- 4. सी # मेमोरी रिसाव?
- 5. rabbitmq + अजवाइन मेमोरी रिसाव?
- 6. मेमोरी रिसाव JDK कक्षाएं
- 7. आईओएस - मेमोरी रिसाव AddressBook
- 8. jQuery इनपुट बटन इवेंट श्रोता
- 9. जावास्क्रिप्ट में इवेंट श्रोता को कैसे निकालें?
- 10. एमवीसी 4 आईआईएस मेमोरी रिसाव
- 11. जावा मानक एपीआई में मेमोरी रिसाव जाल
- 12. क्या Async.StartChild में मेमोरी रिसाव है?
- 13. रेडहाट लिनक्स में जावा/टॉमकैट मेमोरी रिसाव?
- 14. सी # इवेंट आधारित मेमोरी लीक
- 15. स्विंग श्रोता स्मृति रिसाव को कैसे हल करें?
- 16. Google मानचित्र v3 InfoBox इवेंट श्रोता जोड़ें
- 17. ओरिएंटेशन चेंज इवेंट या श्रोता एंड्रॉइड
- 18. श्रोता "सॉफ़्टडिलेटेबल लिस्टर" को इवेंट मैनेजर
- 19. एएस 3 - इवेंट श्रोता जो केवल
- 20. क्या एक एप्लिकेशन मेमोरी रिसाव एक ऑपरेटिंग सिस्टम मेमोरी रिसाव का कारण बनता है?
- 21. JQUERY, IFrame में आइटम्स में इवेंट श्रोता जोड़ना?
- 22. रेल मेमोरी रिसाव पर रूबी; find_each
- 23. थ्रेड। फ्रीऑनटर्मिनेट: = ट्रू, मेमोरी रिसाव और भूत
- 24. CookieSyncManager के कारण मेमोरी लीक (गतिविधि रिसाव)?
- 25. Entitymanager मेमोरी रिसाव का कारण बनता है?
- 26. jQuery मेमोरी रिसाव पैटर्न और कारण
- 27. मेमोरी रिसाव जब एक अजगर कार्यक्रम
- 28. ViewScoped बीन के साथ मेमोरी रिसाव?
- 29. सी के लिए मेमोरी रिसाव डिटेक्टरों?
- 30. गिराए गए कनेक्शन पर टोरनाडो मेमोरी रिसाव
यहां एक साधारण श्रोता है जो स्मृति रिसाव का कारण बनता है http://stackoverflow.com/questions/7083441/android-alertdialog-causes-a-memory-leak – user4o01
मुझे कैसे पता चलेगा कि श्रोता गतिविधि से जुड़ा हुआ है या नहीं प्रक्रिया द्वारा? – Jaskey
@ कॉमन्सवेयर फिर से सर मर्फी धन्यवाद। –