मुझे लगता है कि एसडीके साइट पर बहुत सारे सामान हैं जो खराब दस्तावेज हैं, यह उनमें से एक है। मैं जो दावा करने जा रहा हूं वह यह है कि ऐसा लगता है जैसे कि एप्लिकेशन संदर्भ का उपयोग करने के लिए डिफ़ॉल्ट रूप से बेहतर है और केवल एक गतिविधि संदर्भ का उपयोग करें जब आपको वास्तव में आवश्यकता होती है। एकमात्र जगह जहां मैंने कभी देखा है कि आपको एक प्रगति संवाद के लिए एक गतिविधि संदर्भ की आवश्यकता है। SBERG412 का दावा है कि आपको टोस्ट संदेश के लिए गतिविधि संदर्भ का उपयोग करना होगा, फिर भी एंड्रॉइड डॉक्स स्पष्ट रूप से उपयोग किए जा रहे एप्लिकेशन संदर्भ को दिखाता है। मैंने हमेशा इस Google उदाहरण के कारण विस्फोट के लिए एप्लिकेशन संदर्भ का उपयोग किया है। अगर ऐसा करना गलत है, तो Google ने यहां गेंद को गिरा दिया।
इसके बारे में सोचने और समीक्षा करने के लिए और अधिक:
टोस्ट संदेश के लिए, Google देव गाइड एप्लिकेशन संदर्भ का उपयोग करता है और स्पष्ट रूप से इसका उपयोग करने के लिए कहता है:
टोस्ट सूचनाएं
देव गाइड के संवाद अनुभाग में, आप देखते हैं कि AlertDialog.Builder अनुप्रयोग संदर्भ का उपयोग करता है, और फिर प्रगति बार एक गतिविधि संदर्भ का उपयोग करता है। यह Google द्वारा समझाया नहीं गया है।
संवाद
ऐसा लगता है कि अनुप्रयोग संदर्भ का उपयोग करने का एक अच्छा कारण यह है कि जब आप कॉन्फ़िगरेशन परिवर्तन को एक अभिविन्यास परिवर्तन की तरह संभालना चाहते हैं, और आप उन वस्तुओं को बनाए रखना चाहते हैं जिन्हें दृश्य जैसे संदर्भ की आवश्यकता है। यदि आप यहां देखते हैं: रन टाइम परिवर्तन
एक गतिविधि संदर्भ का उपयोग करने के बारे में सावधानी है, जो एक रिसाव बना सकता है। यह उन अनुप्रयोगों के संदर्भ से बचा जा सकता है, जिन्हें बनाए रखा जाना है (कम से कम मेरी समझ)। एक ऐप में मैं लिख रहा हूं, मैं एक एप्लिकेशन संदर्भ का उपयोग करने का इरादा रखता हूं क्योंकि मैं एक अभिविन्यास परिवर्तन पर कुछ विचारों और अन्य चीजों को पकड़ने की कोशिश कर रहा हूं, और मैं अभी भी चाहता हूं कि गतिविधि को नष्ट कर दिया जाए और अभिविन्यास परिवर्तनों पर फिर से बनाया जाए। इस प्रकार मुझे स्मृति रिसाव का कारण न बनने के लिए एक ऐप संदर्भ का उपयोग करना होगा (देखें मेमोरी लीक्स से बचें)। मेरे लिए ऐसा लगता है कि गतिविधि संदर्भ के बजाय अनुप्रयोग संदर्भ का उपयोग करने के लिए बहुत सारे अच्छे कारण हैं, और मेरे लिए यह लगभग ऐसा लगता है कि आप इसे गतिविधि संदर्भ की तुलना में अधिक बार उपयोग करेंगे। यही कारण है कि मुझे लगता है कि कई एंड्रॉइड किताबें मेरे द्वारा देखी गई हैं, और मैंने जो Google उदाहरण देखे हैं, उनमें से बहुत से हैं।
Google दस्तावेज़ीकरण वास्तव में ऐसा लगता है जैसे कि अनुप्रयोग संदर्भ का उपयोग करना ज्यादातर मामलों में पूरी तरह से ठीक है, और वास्तव में उनके उदाहरणों में एक गतिविधि संदर्भ का उपयोग करने की तुलना में अधिक बार दिखाई देता है (कम से कम मैंने जो उदाहरण देखे हैं)। यदि एप्लिकेशन के संदर्भ का उपयोग करना वास्तव में ऐसी समस्या है, तो Google को वास्तव में इस पर अधिक जोर देने की आवश्यकता है। उन्हें इसे स्पष्ट करने की आवश्यकता है, और उन्हें अपने कुछ उदाहरणों को फिर से करने की आवश्यकता है। मैं इसे पूरी तरह से अनुभवहीन डेवलपर्स पर दोष नहीं दूंगा क्योंकि प्राधिकरण (Google) वास्तव में ऐसा दिखता है कि यह आवेदन संदर्भों का उपयोग करने के लिए कोई समस्या नहीं है।