- Android में एक इरादा क्या है ?
- क्या कोई उदाहरण के साथ विस्तृत कर सकता है?
- इरादों के प्रकार क्या हैं, और हम उनका उपयोग क्यों कर रहे हैं?
- Android में इरादे इतने महत्वपूर्ण क्यों हैं?
जवाबों:
एक इरादे एक कार्रवाई करने के लिए एक "इरादा" है; दूसरे शब्दों में,
एक मैसेजिंग ऑब्जेक्ट जिसका उपयोग आप किसी अन्य ऐप घटक से कार्रवाई का अनुरोध करने के लिए कर सकते हैं
एक आशय मूल रूप से एक संदेश है जो आपने कहा है या कुछ बनना चाहते हैं। इरादे के आधार पर, ऐप या ओएस इसके लिए सुन रहे होंगे और उसी के अनुसार प्रतिक्रिया करेंगे। इसे ब्लास्ट ईमेल के रूप में दोस्तों के एक समूह के रूप में सोचें, जिसमें आप अपने दोस्त जॉन को कुछ करने के लिए कहें, या ऐसे दोस्तों को जो एक्स ( "इरादे फिल्टर" ) कर सकते हैं, एक्स करने के लिए। अन्य लोग ईमेल को अनदेखा करेंगे, लेकिन जॉन (या दोस्त जो एक्स कर सकते हैं) इस पर प्रतिक्रिया करेंगे।
एक प्रसारण इरादे के लिए सुनने के लिए (जैसे फोन बज रहा है, या एक एसएमएस प्राप्त होता है), आप एक प्रसारण रिसीवर को लागू करते हैं , जो इरादे से पारित हो जाएगा। यह घोषित करने के लिए कि आप दूसरे ऐप के इरादे को संभाल सकते हैं जैसे "टेक पिक्चर", आप अपने ऐप की मैनिफ़ेस्ट फ़ाइल में एक आशय फ़िल्टर घोषित करते हैं ।
यदि आप कुछ करने के इरादे से आग लगाना चाहते हैं, जैसे कि डायलर को पॉप अप करें, तो आप यह कहते हुए इरादे से आग लगा देंगे कि आप क्या करेंगे।
एक आशय मूल रूप से एक संदेश है जो घटकों (जैसे गतिविधियाँ , सेवाएँ, प्रसारण रिसीवर और सामग्री प्रदाता ) के बीच पारित किया जाता है । तो, यह एपीआई कॉल के लिए पारित किए गए मापदंडों के लगभग बराबर है। एपीआई कॉल और इंट्रस्टिंग घटकों के बीच मूलभूत अंतर इस प्रकार हैं:
बेशक, इरादे को स्पष्ट इरादों कहा जाता है का उपयोग करके एपीआई कॉल की तरह काम करने के लिए बनाया जा सकता है , जिसे बाद में समझाया जाएगा। लेकिन अधिक बार नहीं, निहित इरादे जाने का तरीका है और यही यहाँ समझाया गया है।
एक घटक जो दूसरे को आमंत्रित करना चाहता है, उसे केवल नौकरी करने का इरादा व्यक्त करना होगा। और कोई अन्य घटक जो मौजूद है और उसने दावा किया है कि यह इरादे-फ़िल्टर के माध्यम से ऐसा काम कर सकता है, नौकरी को पूरा करने के लिए एंड्रॉइड प्लेटफॉर्म द्वारा लागू किया जाता है। इसका मतलब है, न तो घटकों को एक दूसरे के अस्तित्व के बारे में पता है, लेकिन अंत-उपयोगकर्ता के लिए वांछित परिणाम देने के लिए अभी भी एक साथ काम कर सकते हैं।
घटकों के बीच यह अदृश्य कनेक्शन इंटेंट, इरादे-फिल्टर और एंड्रॉइड प्लेटफॉर्म के संयोजन के माध्यम से प्राप्त किया जाता है।
यह इस तरह की संभावनाओं की ओर जाता है:
एंड्रॉइड डॉक्यूमेंटेशन से इंटेंट्स के बारे में अतिरिक्त तकनीकी जानकारी यहां दी गई है ।
आशय प्रदर्शन किए जाने वाले ऑपरेशन का एक सार वर्णन है। इसके साथ इस्तेमाल किया जा सकता startActivity एक शुरू करने के लिए गतिविधि, broadcastIntent किसी भी इच्छुक को भेजने के लिए BroadcastReceiver घटकों, और startService (आशय) या bindService (आशय, ServiceConnection, पूर्णांक) एक पृष्ठभूमि सेवा के साथ संवाद करने।
एक उद्देश्य विभिन्न अनुप्रयोगों में कोड के बीच देर से रनिंग बाइंडिंग प्रदर्शन करने के लिए एक सुविधा प्रदान करता है। इसका सबसे महत्वपूर्ण उपयोग गतिविधियों के शुभारंभ में है, जहां इसे गतिविधियों के बीच गोंद के रूप में सोचा जा सकता है। यह मूल रूप से एक निष्क्रिय डेटा संरचना है जिसे निष्पादित करने के लिए एक क्रिया का एक सार विवरण रखा जाता है। एक इरादे में जानकारी के प्राथमिक टुकड़े हैं:
- कार्रवाई की जाने वाली सामान्य क्रिया, जैसे कि ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, आदि।
- data संपर्क डेटाबेस में एक व्यक्ति रिकॉर्ड के रूप में संचालित करने के लिए डेटा, उड़ी के रूप में व्यक्त किया जाता है।
इरादे Android को यह बताने का एक तरीका है कि आप क्या करना चाहते हैं । दूसरे शब्दों में, आप अपने इरादे का वर्णन करते हैं। एंड्रॉइड सिस्टम को संकेत देने के लिए इंटेंट्स का उपयोग किया जा सकता है कि एक निश्चित घटना हुई है। एंड्रॉइड के अन्य घटक एक इरादे फ़िल्टर के माध्यम से इस घटना को पंजीकृत कर सकते हैं।
निम्नलिखित 2 प्रकार के इरादे हैं
एक विशिष्ट घटक को कॉल करने के लिए उपयोग किया जाता है। जब आप जानते हैं कि आप किस घटक को लॉन्च करना चाहते हैं और आप उपयोगकर्ता को किस घटक का उपयोग करने के लिए मुफ्त नियंत्रण नहीं देना चाहते हैं। उदाहरण के लिए, आपके पास एक एप्लिकेशन है जिसमें 2 गतिविधियां हैं। गतिविधि ए और गतिविधि बी। आप गतिविधि ए से गतिविधि बी लॉन्च करना चाहते हैं। इस मामले में आप एक स्पष्ट इरादे वाली गतिविधि गतिविधि को परिभाषित करते हैं और फिर इसे सीधे कॉल करने के लिए उपयोग करते हैं।
इसका उपयोग तब किया जाता है जब आपको पता चलता है कि आप क्या करना चाहते हैं, लेकिन आपको यह नहीं पता है कि किस घटक को लॉन्च किया जाना चाहिए। या यदि आप उपयोगकर्ता को उपयोग करने के लिए घटकों की सूची के बीच चयन करने का विकल्प देना चाहते हैं। अगर ये Intents Android सिस्टम में भेजे जाते हैं तो यह उन सभी घटकों की खोज करता है जो विशिष्ट कार्रवाई और डेटा प्रकार के लिए पंजीकृत हैं। यदि केवल एक घटक पाया जाता है, तो एंड्रॉइड घटक को सीधे शुरू करता है। उदाहरण के लिए, आपके पास एक एप्लिकेशन है जो फ़ोटो लेने के लिए कैमरे का उपयोग करता है। आपके एप्लिकेशन की एक विशेषता यह है कि आप उपयोगकर्ता को अपने द्वारा ली गई तस्वीरों को भेजने की संभावना देते हैं। आपको नहीं पता कि उपयोगकर्ता के पास किस प्रकार का एप्लिकेशन है जो फ़ोटो भेज सकता है, और आप उपयोगकर्ता को यह भी विकल्प देना चाहते हैं कि वह कौन से बाहरी अनुप्रयोग का उपयोग कर सकता है यदि उसके पास एक से अधिक हैं। इस मामले में आप एक स्पष्ट इरादे का उपयोग नहीं करेंगे।
एक स्पष्ट आशय हमेशा अपने लक्ष्य को दिया जाता है, चाहे इसमें कोई भी हो; फ़िल्टर से परामर्श नहीं किया जाता है। लेकिन एक अंतर्निहित इरादे को एक घटक तक ही पहुंचाया जाता है, अगर यह घटक के किसी एक फिल्टर से गुजर सकता है
अगर कोई इंटेंट Android सिस्टम में भेजा जाता है, तो वह इस इंटेंट के लिए उपयुक्त एप्लिकेशन निर्धारित करेगा। यदि इस प्रकार के इरादों के लिए कई घटक पंजीकृत किए गए हैं, तो एंड्रॉइड उपयोगकर्ता को उनमें से एक को खोलने का विकल्प प्रदान करता है।
यह निर्धारण इंटेंटफिल्टर पर आधारित है। एक इंटेंटफिल्टर इंटेंट के प्रकारों को निर्दिष्ट करता है जो एक गतिविधि, सेवा, या ब्रोडकास्ट रिसीवर प्राप्त कर सकते हैं। इंटेंट फ़िल्टर एक घटक की क्षमताओं की घोषणा करता है। यह निर्दिष्ट करता है कि निष्क्रियता या सेवा क्या कर सकती है और एक रिसीवर किस प्रकार के प्रसारण को संभाल सकता है। यह संबंधित घटक को घोषित प्रकार के इरादे प्राप्त करने की अनुमति देता है। IntentFilters को आमतौर पर AndroidManifest.xml फ़ाइल के माध्यम से परिभाषित किया जाता है। ब्रॉडकास्टसीवर के लिए कोडिंग में उन्हें परिभाषित करना भी संभव है। एक इंटेंटफिल्टर इसकी श्रेणी, कार्रवाई और डेटा फ़िल्टर द्वारा परिभाषित किया गया है। इसमें अतिरिक्त मेटाडेटा भी हो सकता है।
यदि कोई घटक इंटेंट फ़िल्टर को परिभाषित नहीं करता है, तो इसे केवल स्पष्ट इंटेंट्स द्वारा बुलाया जा सकता है।
फ़िल्टर को परिभाषित करने के 2 तरीके निम्नलिखित हैं
यदि आप मैनिफ़ेस्ट में आशय फ़िल्टर को परिभाषित करते हैं, तो आपके एप्लिकेशन को फ़िल्टर में निर्धारित इंटेंट्स पर प्रतिक्रिया करने के लिए दौड़ना नहीं पड़ता है। जब आपका एप्लिकेशन इंस्टॉल हो जाता है तो Android फ़िल्टर को पंजीकृत करता है।
यदि आप चाहते हैं कि आपका प्रसारण रिसीवर केवल तभी प्राप्त करे जब आपका एप्लिकेशन चल रहा हो। फिर आपको रन टाइम (प्रोग्रामिक रूप से) के दौरान अपने इरादे फ़िल्टर को परिभाषित करना चाहिए। ध्यान रखें कि यह केवल प्रसारण प्राप्तियों के लिए काम करता है।
किसी एक गतिविधि को लिखने के बाद, किसी अन्य कार्य को करने के लिए या तो पहले कार्य की जानकारी के साथ या किसी अन्य कार्य को करने के लिए संक्रमण की आवश्यकता होती है।
एंड्रॉइड प्लेटफॉर्म इंटेंट इंटरफेस के माध्यम से संक्रमण की अनुमति देता है।
शब्द यहां से लिए गए हैं: इंटेंट डेमो का उपयोग करना और मैं आपको इस उदाहरण के माध्यम से जाने का सुझाव देता हूं क्योंकि उन्होंने एक कोड फ़ाइल भी प्रदान की है। इसलिए आप इसका उपयोग कर सकते हैं और आसानी से उसी को समझ सकते हैं।
Android आशय आपको एक Android गतिविधि से दूसरे में नेविगेट करने देता है। उदाहरणों के साथ, यह ट्यूटोरियल विभिन्न प्रकार के एंड्रॉइड इंटेंट्स के बारे में भी बताता है।
एंड्रॉइड इंटेंट को एक साधारण संदेश ऑब्जेक्ट के रूप में परिभाषित किया जा सकता है जो 1 गतिविधि से दूसरे में संचार करने के लिए उपयोग किया जाता है।
इरादे एक आवेदन के इरादे को परिभाषित करते हैं। उनका उपयोग गतिविधियों के बीच डेटा स्थानांतरित करने के लिए भी किया जाता है।
निम्नलिखित कार्यों को करने के लिए एक Android आशय का उपयोग किया जा सकता है:
आशय को मोटे तौर पर 2 श्रेणियों में वर्गीकृत किया जा सकता है। इस श्रेणी के लिए कोई कीवर्ड नहीं हैं और एंड्रॉइड इंटेंट कैसे उपयोग किए जाते हैं, इसका सिर्फ एक विस्तृत वर्गीकरण है।
स्पष्ट Android इरादे
स्पष्ट एंड्रॉइड इंटेंट वह आशय है जिसमें आप उस घटक को स्पष्ट रूप से परिभाषित करते हैं जिसे एंड्रॉइड सिस्टम द्वारा कॉल करने की आवश्यकता होती है।
Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);
निहित Android इरादे
इंप्लिमेंट एंड्रॉइड इंटेंट वह आशय है जहां सटीक घटकों को परिभाषित करने के बजाय, आप उस क्रिया को परिभाषित करते हैं जिसे आप निष्पादित करना चाहते हैं। इस कार्रवाई को संभालने का निर्णय ऑपरेटिंग सिस्टम पर छोड़ दिया गया है। OS तय करता है कि अंतर्निहित इंट्रेंस के लिए कौन सा घटक चलाना सबसे अच्छा है। आइए एक उदाहरण देखें:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
अधिक जानकारी के लिए आप नीचे देख सकते हैं
http://developer.android.com/reference/android/content/Intent.html
उनके प्रलेखन के अनुसार:
इंटेंट एक ऐसी वस्तु है जो अलग-अलग घटकों (जैसे दो गतिविधियाँ) के बीच रनटाइम बाइंडिंग प्रदान करती है। आशय एक ऐप के "कुछ करने के इरादे" को दर्शाता है। आप विभिन्न प्रकार के कार्यों के लिए इंटेंट्स का उपयोग कर सकते हैं, लेकिन अक्सर वे एक और गतिविधि शुरू करने के लिए उपयोग किए जाते हैं।
यहाँ उदाहरण के साथ लिंक है: http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
जैसा कि दस्तावेज़ वर्णन करता है, एक गतिविधि शुरू करने के लिए (आपको यह भी समझना होगा कि गतिविधि क्या है) नीचे दिए गए इरादे का उपयोग करें
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
आशय प्रदर्शन किए जाने वाले ऑपरेशन का एक सार वर्णन है। यह एक गतिविधि शुरू करने के लिए startActivity के साथ इस्तेमाल किया जा सकता है, किसी भी इच्छुक ब्रॉडकास्टसीवर घटकों के लिए इसे भेजने के लिए प्रसारण, और startService (इरादे) या bindService (इरादे, ServiceConnection, int) एक पृष्ठभूमि सेवा के साथ संवाद करने के लिए।
अधिक जानकारी के लिए ये लिंक देखें:
1)। http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
3)। http://www.vogella.de/articles/AndroidIntent/article.html
कई और लेख उपलब्ध हैं।
आशय क्या है?
यह एक तरह का संदेश या सूचना है जो घटकों को दी जाती है। इसका उपयोग गतिविधि शुरू करने, वेब पेज प्रदर्शित करने, एसएमएस भेजने, ईमेल भेजने आदि के लिए किया जाता है।
Android में दो प्रकार के इरादे हैं:
अभिप्राय अभिप्राय
स्पष्ट आशय
प्रणाली के घटकों को लागू करने के लिए निहित इरादे का उपयोग किया जाता है
उदाहरण
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
स्पष्ट इरादे का उपयोग गतिविधि वर्ग को आह्वान करने के लिए किया जाता है।
उदाहरण
इरादा इरादा = newIntent (यह, SecondActivity.class);
startActivity(intent);
आप और पढ़ सकते हैं
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
एक व्यापक दृष्टिकोण में, हम आशय को इस प्रकार परिभाषित कर सकते हैं
जब एक गतिविधि दूसरी गतिविधि शुरू करना चाहती है तो यह आशय नामक एक वस्तु बनाती है जो निर्दिष्ट करती है कि वह कौन सी गतिविधि शुरू करना चाहती है।
एक Android एप्लिकेशन में शून्य या अधिक गतिविधियाँ हो सकती हैं। जब आपके एप्लिकेशन में एक से अधिक गतिविधियां होती हैं, तो आपको अक्सर एक से दूसरे में नेविगेट करने की आवश्यकता होती है। एंड्रॉइड में, आप एक इरादे के रूप में जाना जाता है के माध्यम से गतिविधियों के बीच नेविगेट करते हैं। आप उस गतिविधि के लिए कुछ डेटा पास कर सकते हैं, जिसे आप putExtra () का उपयोग करके इरादे से शुरू करना चाहते हैं।
पेपर Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
लिंक से
आशय कुछ छोटी लेकिन प्रभावी लाइनों में समझा जाता है
से इस धागे एंड्रॉयड वास्तुकार डायने Hackborn का एक सरल जवाब एक के रूप में यह कहा गया हैdata container
जो यह वास्तव में है।
Android आर्किटेक्चर के दृष्टिकोण से :
इंटेंट एक डेटा कंटेनर है जो इंटर प्रोसेस कम्युनिकेशन के लिए उपयोग किया जाता है। यह Binder
Android आर्किटेक्चर के दृष्टिकोण से शीर्ष पर बनाया गया है ।
एक गतिविधि से किसी अन्य गतिविधि को आरंभ करने के लिए इरादों का उपयोग किया जाता है। यह मूल रूप से कई उद्देश्यों के लिए उपयोग किया जाता है जैसे कि एक गतिविधि से किसी अन्य गतिविधि के लिए डेटा भेजना और उद्देश्यों को ट्रिगर करना।
वे मूल रूप से दो प्रकार के होते हैं
प्रबल इरादे।
स्पष्ट इरादा।
एक शुरुआत के रूप में मैं इसे बहुत जानता हूं, मुझे लगता है कि यह एंड्रॉइड के बारे में कुछ बुनियादी विचार देगा