android - एंड्रॉइड में एक इरादा क्या है?




android-intent (13)

एक एंड्रॉइड एप्लिकेशन में शून्य या अधिक गतिविधियां हो सकती हैं। जब आपके एप्लिकेशन में एक से अधिक गतिविधि होती है, तो आपको अक्सर एक से दूसरे में नेविगेट करने की आवश्यकता होती है। एंड्रॉइड में, आप गतिविधियों के बीच नेविगेट करते हैं जिसे एक इरादे के रूप में जाना जाता है। PutExtra () का उपयोग कर आप उस गतिविधि को कुछ डेटा पास कर सकते हैं जिसे आप इरादे से शुरू करना चाहते हैं।

  • एंड्रॉइड में एक Intent क्या है?
  • क्या कोई उदाहरण के साथ विस्तार कर सकता है?
  • इरादों के प्रकार क्या हैं, और हम उनका उपयोग क्यों कर रहे हैं?
  • एंड्रॉइड में इरादों का इतना महत्वपूर्ण क्यों है?

एक इरादा क्या है?

एक Intent मूल रूप से एक संदेश है जो घटकों (जैसे गतिविधियां , सेवाएं, प्रसारण रिसीवर, और सामग्री प्रदाता ) के बीच पारित किया जाता है। तो, यह एपीआई कॉल को पारित पैरामीटर के बराबर है। इरादे के माध्यम से एपीआई कॉल और आविष्कार घटकों के बीच मौलिक अंतर हैं:

  • एपीआई कॉल सिंक्रोनस होते हैं जबकि इरादा-आधारित आमंत्रण एसिंक्रोनस होते हैं।
  • एपीआई कॉल संकलन-समय बाध्यकारी होते हैं जबकि इरादा-आधारित कॉल रन-टाइम बाध्यकारी होते हैं।

निस्संदेह, इरादे को स्पष्ट इरादे कहलाते हुए एपीआई कॉल की तरह काम करने के लिए बनाया जा सकता है , जिसे बाद में समझाया जाएगा। लेकिन अक्सर नहीं, निहित इरादों का रास्ता तय करना है और यही वह है जो यहां बताया गया है।

एक घटक जो किसी अन्य को आमंत्रित करना चाहता है उसे केवल नौकरी करने के अपने इरादे को व्यक्त करना है। और कोई भी अन्य घटक मौजूद है और दावा किया है कि यह intent-filters माध्यम से ऐसा काम कर सकता है, नौकरी को पूरा करने के लिए एंड्रॉइड मंच द्वारा इसका आह्वान किया जाता है। इसका मतलब है, न तो घटक एक दूसरे के अस्तित्व के बारे में जानते हैं लेकिन अंत उपयोगकर्ता के लिए वांछित परिणाम देने के लिए अभी भी एक साथ काम कर सकते हैं।

घटकों के बीच यह अदृश्य कनेक्शन इरादों, इराद-फ़िल्टर और एंड्रॉइड प्लेटफॉर्म के संयोजन के माध्यम से हासिल किया जाता है।

इससे बड़ी संभावनाएं होती हैं जैसे:

  • रनटाइम पर मिक्स करें और मैच करें या बजाए और घटकों के प्ले करें।
  • कस्टम विकसित अनुप्रयोगों के साथ इनबिल्ट एंड्रॉइड अनुप्रयोगों को बदलना।
  • घटक स्तर के भीतर और अनुप्रयोगों का पुन: उपयोग।
  • यदि मैं कह सकता हूं तो सबसे दानेदार स्तर पर सेवा अभिविन्यास।

Intent बारे में अतिरिक्त तकनीकी विवरण यहां दिए गए हैं।

एक इरादा एक ऑपरेशन का एक सार वर्णन किया जाना है। इसका उपयोग पृष्ठभूमि गतिविधि के साथ संवाद करने के लिए किसी भी रुचि ब्रॉडकास्ट रिसीवर घटकों, और startService ( इराद ) या bindService (मंशा, सेवा कनेक्शन, int) को भेजने के लिए एक गतिविधि लॉन्च करने के लिए प्रारंभिक गतिविधि के साथ किया जा सकता है।

एक इरादा विभिन्न अनुप्रयोगों में कोड के बीच देर से रनटाइम बाध्यकारी करने की सुविधा प्रदान करता है। इसका सबसे महत्वपूर्ण उपयोग गतिविधियों को लॉन्च करने में है, जहां इसे गतिविधियों के बीच गोंद के रूप में माना जा सकता है। यह मूल रूप से एक निष्क्रिय डेटा संरचना है जिसमें एक क्रिया का एक सार वर्णन किया जाता है। एक इरादे में जानकारी के प्राथमिक टुकड़े हैं:

  • कार्रवाई सामान्य कार्रवाई की जानी चाहिए, जैसे ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, आदि
  • डेटा ऑपरेट करने के लिए डेटा, जैसे संपर्क डेटाबेस में एक व्यक्ति रिकॉर्ड, उरी के रूप में व्यक्त किया गया।

और अधिक जानें


  1. इरादे क्या हैं? इरादे एसिंक्रोनस संदेश हैं जो अनुप्रयोग घटकों को अन्य एंड्रॉइड घटकों से कार्यक्षमता का अनुरोध करने की अनुमति देते हैं। इरादे आपको अपने और अन्य अनुप्रयोगों से घटकों के साथ बातचीत करने की अनुमति देते हैं। उदाहरण के लिए एक गतिविधि एक तस्वीर लेने के लिए एक बाहरी गतिविधि शुरू कर सकते हैं।

इरादा android.content.Intent प्रकार की वस्तुएं हैं। आपका कोड उन्हें आपके द्वारा लक्षित किए जा रहे घटकों को परिभाषित करने वाले एंड्रॉइड सिस्टम पर भेज सकता है। उदाहरण के लिए startActivity () विधि के माध्यम से आप परिभाषित कर सकते हैं कि एक गतिविधि शुरू करने के लिए इरादा का उपयोग किया जाना चाहिए।

एक इरादे में बंडल के माध्यम से डेटा हो सकता है। यह डेटा प्राप्त घटक द्वारा उपयोग किया जा सकता है।

गतिविधि से कनेक्ट करें शुरू करें

निर्दिष्ट वर्ग

यहां विभिन्न प्रकार के इरादे enter code here एंड्रॉइड स्पष्ट और निहित इरादों का समर्थन करता है।

एक आवेदन लक्ष्य घटक को सीधे इरादे (स्पष्ट इरादे) में परिभाषित कर सकता है या एंड्रॉइड सिस्टम से इच्छित डेटा (अंतर्निहित इरादों) के आधार पर पंजीकृत घटकों का मूल्यांकन करने के लिए कह सकता है।


आप एक इरादे को "कुछ करने का इरादा" के रूप में सोच सकते हैं। यह एक प्रकार का संदेश है जो आपको अलग-अलग ऑब्जेक्ट्स (जैसे गतिविधियों) को रनटाइम पर एक साथ बांधने की अनुमति देता है।

यदि एक गतिविधि दूसरी गतिविधि शुरू करना चाहती है, तो यह एंड्रॉइड के लिए एक इरादा भेजकर करता है। एंड्रॉइड दूसरी गतिविधि शुरू करेगा और इसे मंशा पास करेगा।

प्रमुख पहला एंड्रॉइड विकास


इरादे एंड्रॉइड को बताने का एक तरीका है जो आप करना चाहते हैं । दूसरे शब्दों में, आप अपने इरादे का वर्णन करते हैं। इरादे का उपयोग एंड्रॉइड सिस्टम को सिग्नल करने के लिए किया जा सकता है कि एक निश्चित घटना हुई है। एंड्रॉइड में अन्य घटक एक इरादे फ़िल्टर के माध्यम से इस घटना में पंजीकरण कर सकते हैं।

निम्नलिखित 2 प्रकार के इरादे हैं

1. विशिष्ट इरादे

एक विशिष्ट घटक को कॉल करने के लिए प्रयोग किया जाता है। जब आप जानते हैं कि आप कौन सा घटक लॉन्च करना चाहते हैं और आप उपयोगकर्ता को किस नियंत्रण का उपयोग करने के लिए स्वतंत्र नियंत्रण देना नहीं चाहते हैं। उदाहरण के लिए, आपके पास एक ऐसा एप्लिकेशन है जिसमें 2 गतिविधियां हैं। गतिविधि ए और गतिविधि बी। आप गतिविधि ए से गतिविधि बी लॉन्च करना चाहते हैं। इस मामले में आप एक स्पष्ट उद्देश्य लक्ष्यीकरण गतिविधि को परिभाषित करते हैं और फिर इसे सीधे कॉल करने के लिए इसका उपयोग करें।

2. लागू इरादों

जब आप को पता होना चाहिए कि आप क्या करना चाहते हैं, लेकिन आप नहीं जानते कि कौन सा घटक लॉन्च किया जाना चाहिए। या यदि आप उपयोगकर्ता को उपयोग करने के लिए घटकों की एक सूची के बीच चयन करने का विकल्प देना चाहते हैं। यदि ये इरादे एंड्रॉइड सिस्टम को भेजे जाते हैं तो यह विशिष्ट घटकों और डेटा प्रकार के लिए पंजीकृत सभी घटकों की खोज करता है। यदि केवल एक घटक पाया जाता है, तो एंड्रॉइड सीधे घटक शुरू करता है। उदाहरण के लिए, आपके पास एक ऐसा एप्लिकेशन है जो फ़ोटो लेने के लिए कैमरे का उपयोग करता है। आपके आवेदन की विशेषताओं में से एक यह है कि आप उपयोगकर्ता को उनके द्वारा ली गई तस्वीरों को भेजने की संभावना देते हैं। आप नहीं जानते कि उपयोगकर्ता के पास किस प्रकार का एप्लिकेशन है जो फ़ोटो भेज सकता है, और आप उपयोगकर्ता को यह चुनने का विकल्प भी चुनना चाहते हैं कि कौन से बाहरी एप्लिकेशन का उपयोग करना है यदि उसके पास एक से अधिक हैं। इस मामले में आप एक स्पष्ट इरादे का उपयोग नहीं करेंगे। इसके बजाय आपको एक निहित इरादा का उपयोग करना चाहिए जिसकी क्रिया ACTION_SEND पर सेट हो गई है और इसका डेटा फ़ोटो के यूआरआई को अतिरिक्त सेट है।

एक स्पष्ट इरादा हमेशा अपने लक्ष्य को दिया जाता है, इससे कोई फर्क नहीं पड़ता कि इसमें क्या शामिल है; फ़िल्टर से परामर्श नहीं किया जाता है। लेकिन एक निहित इरादा केवल एक घटक को दिया जाता है यदि यह किसी घटक के फ़िल्टर से गुज़र सकता है

इरादा फ़िल्टर

यदि एंड्रॉइड सिस्टम को कोई इरादा भेजा जाता है, तो यह इस इरादे के लिए उपयुक्त आवेदन निर्धारित करेगा। यदि इस प्रकार के इरादों के लिए कई घटक पंजीकृत हैं, तो एंड्रॉइड उपयोगकर्ता को उनमें से एक खोलने का विकल्प प्रदान करता है।

यह दृढ़ संकल्प IntentFilters पर आधारित है। एक इरादा फ़िल्टर इस प्रकार के इरादे को निर्दिष्ट करता है कि एक गतिविधि, सेवा, या ब्रॉडकास्ट रिसीवर प्रतिक्रिया दे सकता है। एक इरादा फ़िल्टर एक घटक की क्षमताओं की घोषणा करता है। यह निर्दिष्ट करता है कि निष्क्रियता या सेवा क्या कर सकती है और रिसीवर किस प्रकार के प्रसारण को संभाल सकता है। यह संबंधित घटक को घोषित प्रकार के इरादे प्राप्त करने की अनुमति देता है। IntentFilters को आमतौर पर AndroidManifest.xml फ़ाइल के माध्यम से परिभाषित किया जाता है। ब्रॉडकास्ट रिसीवर के लिए कोडिंग में उन्हें परिभाषित करना भी संभव है। एक इरादा फ़िल्टर को इसकी श्रेणी, क्रिया और डेटा फ़िल्टर द्वारा परिभाषित किया जाता है। इसमें अतिरिक्त मेटाडाटा भी हो सकता है।

यदि कोई घटक किसी इरादे फ़िल्टर को परिभाषित नहीं करता है, तो इसे केवल स्पष्ट उद्देश्यों द्वारा ही बुलाया जा सकता है।

फ़िल्टर को परिभाषित करने के 2 तरीके निम्नलिखित हैं

1. संदेश फ़ाइल

यदि आप मैनिफेस्ट में इरादा फ़िल्टर को परिभाषित करते हैं, तो आपके एप्लिकेशन को फ़िल्टर के परिभाषित उद्देश्यों पर प्रतिक्रिया करने के लिए दौड़ना नहीं पड़ता है। एंड्रॉइड फ़िल्टर को पंजीकृत करता है जब आपका एप्लिकेशन इंस्टॉल हो जाता है।

2. ब्रॉडकास्ट रिसीवर

यदि आप अपने प्रसारण रिसीवर को केवल तब ही इरादा प्राप्त करना चाहते हैं जब आपका एप्लिकेशन चल रहा हो। फिर आपको रन टाइम (प्रोग्रामेटिक रूप से) के दौरान अपना इरादा फ़िल्टर परिभाषित करना चाहिए। ध्यान रखें कि यह केवल प्रसारण रिसीवर के लिए काम करता है।


इरादे एसिंक्रोनस संदेश हैं जो अनुप्रयोग घटकों को अन्य एंड्रॉइड घटकों से कार्यक्षमता का अनुरोध करने की अनुमति देते हैं। इरादों से आप एक ही अनुप्रयोगों के घटकों के साथ-साथ अन्य अनुप्रयोगों द्वारा योगदान घटकों के साथ बातचीत करने की अनुमति देते हैं। उदाहरण के लिए, एक तस्वीर लेने के लिए एक गतिविधि बाहरी गतिविधि शुरू कर सकती है।

इरादा android.content.Intent प्रकार की वस्तुएं हैं। आपका कोड उन्हें आपके द्वारा लक्षित किए जा रहे घटकों को परिभाषित करने वाले एंड्रॉइड सिस्टम पर भेज सकता है। उदाहरण के लिए, startActivity () विधि के माध्यम से आप परिभाषित कर सकते हैं कि एक गतिविधि शुरू करने के लिए इरादा का उपयोग किया जाना चाहिए।

एक इरादे में बंडल के माध्यम से डेटा हो सकता है। यह डेटा प्राप्त घटक द्वारा उपयोग किया जा सकता है। एक गतिविधि शुरू करने के लिए, विधि प्रारंभिकता (इरादा) विधि का उपयोग करें। इस विधि को कॉन्टेक्स्ट ऑब्जेक्ट पर परिभाषित किया गया है जो गतिविधि विस्तारित करता है।


उनके दस्तावेज के अनुसार:

एक इरादा एक वस्तु है जो अलग-अलग घटकों (जैसे दो गतिविधियों) के बीच रनटाइम बाध्यकारी प्रदान करती है। इरादा एक ऐप के "कुछ करने का इरादा" का प्रतिनिधित्व करता है। आप विभिन्न प्रकार के कार्यों के लिए इरादों का उपयोग कर सकते हैं, लेकिन अक्सर उन्हें एक और गतिविधि शुरू करने के लिए उपयोग किया जाता है।

उदाहरण के साथ लिंक यहां दिया गया है: 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);
}

एक इरादा एक ऑपरेशन का एक सार वर्णन किया जाना है। इसका उपयोग पृष्ठभूमि गतिविधि के साथ संवाद करने के लिए किसी भी रुचि ब्रॉडकास्ट रिसीवर घटकों, और startService (इराद) या bindService (इरादा, सेवा कनेक्शन, 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

कई और लेख उपलब्ध हैं।


एक इरादा एक वर्ग है, जो कुछ कार्यों को करने के लिए जानकारी बांधता है।

उदाहरण: जब उपयोगकर्ता इस तरह के कार्यों को निष्पादित करता है तो डेटा को किसी अन्य गतिविधि में सहेजना

वर्तमान गतिविधि।


एक एंड्रॉइड एप्लिकेशन में शून्य या अधिक गतिविधियां हो सकती हैं। जब आपके एप्लिकेशन में एक से अधिक गतिविधि होती है, तो आपको एक गतिविधि से दूसरी गतिविधि में नेविगेट करने की आवश्यकता हो सकती है। एंड्रॉइड में, आप गतिविधियों के बीच नेविगेट करते हैं जिसे एक इरादे के रूप में जाना जाता है।


मूल रूप से इरादों को समझने के लिए मैं आपको साइट पर जाने का सुझाव http://developer.android.com/guide/topics/intents/intents-filters.html : http://developer.android.com/guide/topics/intents/intents-filters.html

साथ ही, मैंने अपने व्यक्तिगत ब्लॉग में उदाहरणों के इरादे के बारे में चर्चा की है: http://androiddesk.wordpress.com/2011/12/24/explicit-intent/

http://androiddesk.wordpress.com/2012/01/13/implicit-intent/

अगर आपको लगता है कि उपयोगी होगा तो बस देखो।

धन्यवाद


व्यापक दृष्टिकोण में, हम इरादे को परिभाषित कर सकते हैं

जब एक गतिविधि दूसरी गतिविधि शुरू करना चाहती है तो यह एक ऑब्जेक्ट बनाता है जिसे इरादा कहा जाता है जो निर्दिष्ट करता है कि वह कौन सी गतिविधि शुरू करना चाहता है।


इरादा क्या है?

यह एक प्रकार का संदेश या जानकारी है जो घटकों को पास किया जाता है। इसका उपयोग एक गतिविधि लॉन्च करने, वेब पेज प्रदर्शित करने, एसएमएस भेजने, ईमेल भेजने आदि के लिए किया जाता है।

एंड्रॉइड में दो प्रकार के इरादे हैं:

लागू इरादा
स्पष्ट इरादा

सिस्टम घटकों का आह्वान करने के लिए लागू इरादा का उपयोग किया जाता है

उदाहरण

Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));

startActivity(i);

गतिविधि वर्ग का आह्वान करने के लिए स्पष्ट इरादा का उपयोग किया जाता है।

उदाहरण

इरादा इरादा = नया इंटेंटेंट (यह, द्वितीय एक्टिविटी.क्लास);

startActivity(intent);

आप और पढ़ सकते हैं

http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html





android-intent