पर संदर्भ संग्रहीत करना मेरे पास एक स्थिर प्राथमिकता वर्ग है जिसमें कुछ एप्लिकेशन प्राथमिकताएं और सामान शामिल हैं। क्या एप्लिकेशन कॉन्टेक्स्ट के संदर्भ में स्टोर करना ठीक है? मुझे उस संदर्भ की आवश्यकता है, इसलिए मैं कैश फ़ोल्डर और उस तरह की चीजें कक्षाओं में प्राप्त कर सकता हूं जो गतिविधि का वारिस नहीं करते हैं।एंड्रॉइड - एप्लिकेशन कॉन्टेक्स्ट
उत्तर
यदि आप it can cause significant memory leaks नहीं हैं तो आप ApplicationContext
का उपयोग करने का अधिकार रखते हैं।
हालांकि, आपके पास समस्या यह है कि static
चर इसके मूल्य को बरकरार नहीं रख सकता है। एंड्रॉइड अनुप्रयोगों को संभालने के तरीके के कारण यह संभव है कि आपका एप्लिकेशन मारे जा सके और फिर पुनरारंभ किया जा सके - आम तौर पर उपयोगकर्ता अन्य अनुप्रयोगों पर स्विच करने के कारण - इस तरह से कि आपका static
वैरिएबल शून्य हो जाएगा और आपका कोड जो इसे सेट करता है ' टी चलाओ। Have a look at this question for a more detailed answer।
इस समस्या के आसपास काम करना संभव हो सकता है लेकिन null
समाप्त होने वाली सभी संभावनाओं का परीक्षण करना समय लेने वाली और त्रुटि प्रवण होगा। तो मेरी स्थिर वरीयता कक्षाओं में मैंने किसी भी विधि को बनाया है जिसके लिए Context
एक तर्क के रूप में लेना आवश्यक है। उदाहरण के लिए:
static int getSomeIntegerPreference(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context).getInt(PREFERENCE_SOME_INTEGER, 0);
}
यह बदसूरत है लेकिन यह काम करता है।
- 1. स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट बीन स्कोप
- 2. स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट लोडिंग हुक
- 3. एंड्रॉइड कॉन्टेक्स्ट मेमोरी लीक लिस्ट व्यू AudioManager
- 4. एंड्रॉइड एप्लिकेशन
- 5. एंड्रॉइड एप्लिकेशन
- 6. एंड्रॉइड एप्लिकेशन
- 7. एंड्रॉइड एप्लिकेशन
- 8. एंड्रॉइड एप्लिकेशन
- 9. एंड्रॉइड एप्लिकेशन
- 10. एंड्रॉइड एप्लिकेशन
- 11. एंड्रॉइड एप्लिकेशन
- 12. एंड्रॉइड एप्लिकेशन
- 13. एंड्रॉइड एप्लिकेशन
- 14. एंड्रॉइड एप्लिकेशन
- 15. एंड्रॉइड एप्लिकेशन
- 16. एंड्रॉइड एप्लिकेशन
- 17. एंड्रॉइड: एप्लिकेशन
- 18. नियंत्रक से एप्लिकेशन कॉन्टेक्स्ट तक पहुंचने के लिए
- 19. क्या मेरे एप्लिकेशन कॉन्टेक्स्ट में एकाधिक PropertyPlaceHolderConfigurer होना संभव है?
- 20. वेबव्यू में वीडियो - एप्लिकेशन कॉन्टेक्स्ट बनाम गतिविधि संदर्भ
- 21. स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट पदानुक्रम का उपयोग क्यों करें?
- 22. विंडोज़/डब्ल्यूपीएफ/सिल्वरलाइट एप्लिकेशन में एंटीटी फ्रेमवर्क ऑब्जेक्ट कॉन्टेक्स्ट
- 23. ऑब्जेक्ट कॉन्टेक्स्ट
- 24. ऑब्जेक्ट कॉन्टेक्स्ट
- 25. ऑब्जेक्ट कॉन्टेक्स्ट
- 26. ऑपरेशन कॉन्टेक्स्ट
- 27. डेटा कॉन्टेक्स्ट
- 28. प्रिंसिपल कॉन्टेक्स्ट
- 29. सुरक्षा कॉन्टेक्स्ट
- 30. ऑपरेशन कॉन्टेक्स्ट में शीर्षलेख
ठीक है, मैंने अपनी प्राथमिकताओं को सेट करने के लिए एप्लिकेशंस कॉन्टेंट() प्राप्त करने के लिए अपनी प्राथमिकताओं को सेट किया है। एप्लिकेशंस कॉन्टेंट()। तो मुझे लगता है कि जब तक आवेदन मर जाता है तब तक यह होना चाहिए (वीएम मर जाता है, प्रक्रिया हत्यारा हो जाती है, आदि ..)। और यदि यह मर जाता है, तो अगली शुरुआत में यह Preferences.applicationContext को फिर से शुरू करेगा, इसलिए मुझे लगता है कि इसे ठीक काम करना चाहिए। मुझे ऐसा कुछ चाहिए, बेक्यूज मुझे कुछ कक्षाओं में संदर्भ की आवश्यकता है जो getAplicationContext() नहीं देखते हैं। उदाहरण के लिए मेरी श्रेणी श्रेणी को प्रत्येक श्रेणी के लिए आइकन डाउनलोड करने की आवश्यकता है, इसलिए मैंने आइकन_पैथ को सेट किया है। filepath = Preferences.applicationContext.getCacheDir()। ToString – nixa
आपको * प्राथमिकताएं 'कक्षा का उपयोग करने वाली * हर * गतिविधि में' प्राथमिकताएं। एप्लिकेशंस कॉन्टेक्स्ट 'प्रारंभ करना होगा। जब आप अपनी पहली गतिविधि में एक अलग गतिविधि चला रहे हों तो आपकी प्रक्रिया मारे जा सकती है और एंड्रॉइड पहले गतिविधि को छोड़कर, आपके एप्लिकेशन में उस बिंदु पर उपयोगकर्ता को वापस कर सकता है। –