दिलचस्प पोस्ट
विजुअल स्टूडियो एक्सप्रेस संस्करण के साथ SQL सर्वर से कनेक्ट करना जेडीबीसी में एक विशिष्ट अपवाद कैसे पकड़ सकता है? स्थानीय फ़ाइल सिस्टम पर क्रोम एक्सेस-कंट्रोल-अनुमति-मूल सर्किवेटिंग? आप एरो स्नैप को किसी अनुप्रयोग में कैसे अक्षम करते हैं? बैबल द्वारा जोड़ा गया वैश्विक "उपयोग सख्त" कैसे निकालना कोलेक्शन की गणना करें – कोर () – कॉलम के केवल एक उप-भाग के लिए वसंत: मैं एक एचटीपीपीएर्वलेट अनुरोध को एक अनुरोध-स्कॉक्ड बीन में कैसे इंजेक्ट करूँ? डिफ़ॉल्ट URL स्कीम के साथ कैसे संभालना है कैसे सी # का उपयोग कर एक खिड़कियों फ़ॉन्ट स्थापित करने के लिए एकीकृत सुरक्षा के बीच अंतर = सही और एकीकृत सुरक्षा = एसएसपीआई स्विफ्ट 2.0 में यूआरएल के लिए स्ट्रिंगबय एडलिंगपरसेंट एन्कोडिंग के साथ -अनुमित ग्राहक () का उपयोग कैसे करें Z- इंडेक्स स्टैकिंग ऑर्डर को समझना त्रुटि प्राप्त हो रही है "फ़ॉर्म सबमिशन रद्द कर दिया क्योंकि फ़ॉर्म कनेक्ट नहीं है" फ़ायरफ़ॉक्स में अचानक क्यों "अवरूद्ध मिश्रित सक्रिय सामग्री" समस्या हो रही है? फायरबेज वाले वृद्धिशील बच्चों से प्रारंभिक डेटा लोड कैसे अलग करें?

क्या मुझे getApplicationContext या गतिविधि का उपयोग करना चाहिए। यह एक लंबे समय से चल रहे AsyncTask में है I

मेरे पास एक लंबे समय तक चलने वाली एसिंक कार्य है जो मेरे सर्वर पर कुछ डेटा भेजता है और फिर बंद हो जाता है पूरी प्रक्रिया में कुछ अनुरोध और प्रतिक्रिया शामिल हो सकती है। मुझे डेटाबेस से डेटा पढ़ना होगा, इसे भेजना और प्रतिक्रिया को संभाल करना और उसके अनुसार अपने डेटाबेस को अपडेट करना होगा। मैं डेटाबेस से डाटा पढ़ने और अपडेट करने के लिए सामग्री प्रदाताओं का उपयोग कर रहा हूं।

अब सामग्री प्रदाता का उपयोग करने के लिए, मुझे संदर्भ पर getContentResolver() विधि कॉल करना होगा तो मैं सोच रहा हूं कि मुझे getApplicationContext का प्रयोग getApplicationContext या सिर्फ Activity.this को पास करना है। यह मेरे तरीकों से है

मैंने ऐसे कुछ पद देखा जिनमें से दो के बीच के अंतर को समझाते हुए और उनमें से अधिकतर वे सलाह getApplicationContext कि यदि संभव हो तो getApplicationContext उपयोग न करें। यद्यपि मैं अपने AsyncTask को Activity.this से संदर्भ खोने नहीं चाहता। यह तब होता है जब Activity नष्ट हो जाती है या जब ओरिएंटेशन परिवर्तन होता है। इसलिए मैं सोच रहा हूं कि क्या मैं अपने मामले में getApplicationContext का उपयोग कर सकता हूँ या Activity.this का उपयोग कर सकता हूँ। यह मेरी आवश्यकता के अनुरूप है

Solutions Collecting From Web of "क्या मुझे getApplicationContext या गतिविधि का उपयोग करना चाहिए। यह एक लंबे समय से चल रहे AsyncTask में है I"

प्रत्येक विकल्प का उपयोग करने के लिए एक कारण है

जब आप UI को संशोधित करने के लिए संदर्भ का उपयोग कर रहे हैं, तो आपको गतिविधि संदर्भ का उपयोग करना चाहिए , क्योंकि कुछ मामलों में अनुप्रयोग संदर्भ का उपयोग करके अपवाद उत्पन्न हो सकता है ( जैसा कि यहाँ और यहां बताया गया है )। जैसे कि निम्नलिखित मामले में:

 TextView senderNameTextView = new TextView(getApplicationContext()); 

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

यदि आप संदर्भ में केवल getContentResolver को कॉल करने के लिए उपयोग कर रहे हैं, तो आपको एप्लिकेशन संदर्भ का उपयोग करना चाहिए।