2011-12-14 17 views
11

this answer के अनुसार या एंड्रॉइड के दस्तावेज़ों में एक ऐप में संदर्भ प्राप्त करने के कई तरीके हैं और इसे किसी अन्य वर्ग/विधि/जो भी जुड़ा हुआ है उसे पास करें।संदर्भ प्राप्त करने का बेहतर तरीका क्या है?

मान लें कि मैं फू गतिविधि में हूं और बार के कन्स्ट्रक्टर को संदर्भ पारित करने की आवश्यकता है।

Bar bar = new Bar(Foo.this); 
Bar bar2 = new Bar(this); //same as first i guess 
Bar bar3 = new Bar(getApplicationContext()); 
Bar bar4 = new Bar(getBaseContext()); 
Bar bar5 = new Bar(MyApp.getContext); // get context statically 

जाएगा मेमोरी लीक, गति, सामान्य प्रदर्शन के ध्यान में रखते हुए, क्या उन सभी संभावनाओं के बीच बेहतर तरीका हो सकता है?

उत्तर

2

आप बाहर this question की जाँच करनी चाहिए - जो मूल रूप से तुम्हारा के रूप में ही शामिल किया गया।

Avoiding memory leaks पर डेवलपर डॉक्स आपको कुछ बैठकों का एक सभ्य स्पष्टीकरण देता है जिसमें विभिन्न विधियों का उपयोग करना उचित है।

0

Android memory management। इसमें एंड्रॉइड मेमोरी प्रबंधन के सभी पहलुओं को शामिल किया गया है।

संदर्भ स्पष्टीकरण के लिए this एक अच्छा जवाब है।

एक और good explanations of context

0

शायद आप इस का उपयोग करना चाहते हैं। यह आपकी वर्तमान गतिविधि के संदर्भ है (जो संदर्भ है) और इसमें सबसे कम जीवन चक्र है। लेकिन स्मृति रिसाव के बारे में पता होना चाहिए जो हो सकता है। http://developer.android.com/resources/articles/avoiding-memory-leaks.html

0

मैं अपने question.But के लिए किसी भी सीधा जवाब अगर आप Foo.this तुलना और यह तो बेहतर रूप में कभी कभी पहले एक (नेस्टेड वर्ग मामले में) दूसरा एक त्रुटि दिखाएगा उपयोग करने के लिए नहीं है।

अधिक चर्चा पर यह है कि लिंक

Using Application context everywhere? के माध्यम से जाने के लिए

आशा है कि यह आपकी मदद करेगा

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

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