मैंने पढ़ा है कि यह एक गलती है और एक संदर्भ में लंबे समय तक रहने वाले संदर्भ रखने के लिए एंड्रॉइड एप्लिकेशन में मेमोरी लीक का स्रोत है।एंड्रॉइड: एक संदर्भ और मेमोरी लीक के संदर्भ
लेकिन मुझे समझ नहीं आता है, तो यह ठीक है एक वर्ग है कि यह एक तरह लग रहा है बनाने के लिए:
public class HelperClass {
private Context context;
public HelperClass(Context context) {
this.context = context;
}
public void myHelperMethod() {
// uses this.context
}
}
और यह एक गतिविधि से फोन:
public class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
HelperClass h = new HelperClass(this);
h.myHelperMethod();
}
...
}
क्या होगा यदि आपके पास अपनी गतिविधि में ऐसे सहायक वर्ग के साथ एक निजी चर है, जिसमें 'संदर्भ' संदर्भ है? – Peterdk
@Peterdk यदि आपका चर ConAxticationContext() से संदर्भ उदाहरण धारण कर रहा है, कोई समस्या नहीं है। लेकिन यदि आप किसी गतिविधि से संदर्भ धारण कर रहे हैं, तो मेमोरी लीक के साथ सावधानी बरतें (आवश्यकतानुसार क्रियाकलापों से अधिक उचित तरीके से आयोजन करना)। शायद आपको गतिविधि संदर्भ उदाहरण को पकड़ने के लिए वीक रेफरेंस का उपयोग करना चाहिए और यह जानने के लिए श्रोता का उपयोग करना चाहिए कि आपका एप्लिकेशन अन्य गतिविधि में कब बदल गया है। – marciowb