Android.intent.action.MAIN का अर्थ क्या है?


85

मैंने बहुत सारे अलग-अलग भ्रमित अन्वेषणों को देखा है ।।

<intent-filter>
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

का अर्थ क्या है

<action android:name="android.intent.action.MAIN" />

तथा

 <category android:name="android.intent.category.LAUNCHER" />

तथा

 <category android:name="android.intent.category.DEFAULT" />

जवाबों:


73

android.intent.action.MAIN इसका मतलब है कि यह गतिविधि एप्लिकेशन का प्रवेश बिंदु है, अर्थात जब आप एप्लिकेशन लॉन्च करते हैं, तो यह गतिविधि बनाई जाती है।

से डॉक्स

ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.

साथ ही, यहां से

गतिविधि क्रिया मुख्य प्रवेश बिंदु के रूप में प्रारंभ करें, डेटा प्राप्त करने की अपेक्षा नहीं करता है।

android.intent.category.DEFAULT मुख्य रूप से अंतर्निहित इरादों के लिए उपयोग किया जाता है। यदि आपकी गतिविधि एक निहित इरादे से शुरू होने की इच्छा रखती है, तो उसे अपने फ़िल्टर में इस कैथेटर को शामिल करना चाहिए। यदि आपकी गतिविधि किसी विशिष्ट श्रेणी को सौंपे जाने पर एक अंतर्निहित इरादे से शुरू हो सकती है, तो इसके इरादे को इस श्रेणी में शामिल करना चाहिए।

android.intent.category.LAUNCHER

श्रेणी - निष्पादित करने की कार्रवाई के बारे में अतिरिक्त जानकारी देता है।

CATEGORY_LAUNCHER इसका अर्थ है कि यह लॉन्चर में एक शीर्ष-स्तरीय अनुप्रयोग के रूप में दिखाई देना चाहिए

डॉक्स देखें ..

  1. http://developer.android.com/reference/android/content/Intent.html
  2. http://developer.android.com/guide/topics/manifest/action-element.html

3
नहीं, MAIN अकेले "गतिविधि घर शुरू नहीं करेगा"। MAINकई उपयोग हैं।
कॉमन्सवेयर

92

ACTION_MAINआवेदन के लिए एक प्रवेश बिंदु माना जाता है। आमतौर पर, यह एक गतिविधि को इंगित करने के लिए CATEGORY_LAUNCHERएक संयोजन के साथ <intent-filter>होता है जो होम स्क्रीन के लॉन्चर में या किसी और चीज में होना चाहिए जो खुद को लॉन्चर मानता है। ऐसी "लॉन्चर" ऐसी गतिविधियों को खोजने और उन्हें उपयोगकर्ता को प्रदर्शित करने के लिए क्वेरी PackageManager, उपयोग कर queryIntentActivities()सकते हैं।

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

जब एक के Intentसाथ प्रयोग किया जाता है startActivity(), अगर Intentपहले से ही एक श्रेणी में नहीं रखा गया है, तो इसे रखा गया है CATEGORY_DEFAULT। इसलिए, कुछ और का उपयोग करते हुए, कुछ<activity> <intent-filter> निर्दिष्ट करने की आवश्यकता है। <category><category android:name="android.intent.category.DEFAULT" />


1
upvoted! मुझे पता था कि आप इसका जवाब देंगे और मैं इसे स्पष्ट और संक्षिप्त उत्तर के रूप में पढ़ने की प्रतीक्षा कर रहा हूं। धन्यवाद
स्पुरडाऊ

6
उह, फिर भी आपने यह नहीं बताया कि हमें दोनों की आवश्यकता क्यों है। मेरा मतलब है, ACTIN MAIN = ENTRY POINT, मिल गया। CATEGORY_LAUCHER = यह इंगित करने के लिए कि होम स्क्रीन के लॉन्चर में एक गतिविधि दिखाई देनी चाहिए। दो वाक्यों को एक ही तरह से अलग-अलग उच्चारण किया जाए, तो वे नहीं निकलते हैं?
एफआरआर

9
@ संदर्भ: नहीं, वे नहीं हैं। आप इस सवाल का जवाब पढ़ने, दूसरा पैराग्राफ, जो एक का एक उदाहरण देता शामिल करके बता सकते हैं कि अलग अलग के उपयोग ACTION_MAINकि है नहीं एक घर स्क्रीन शैली लांचर शामिल है।
कॉमन्सवेयर

2
@ vgokul129: क्योंकि होम स्क्रीन लॉन्चर विशेष रूप से उन गतिविधियों की तलाश करते हैं जो <intent-filter>दोनों के साथ हों <action android:name="android.intent.action.MAIN" />और <category android:name="android.intent.category.LAUNCHER" />
कॉमन्सवेयर

2
@ vgokul129: "लॉन्चर में आइकन पर क्लिक के दौरान सटीक होने के लिए, कोई स्टार्टअक्टिविटी (इरादा) कॉल नहीं करना चाहिए" - केवल तभी जब आप अपने खुद के होम स्क्रीन को अपने खुद के लॉन्चर के साथ लिखते हैं जो इस तरह की क्षमता प्रदान करता है। होम स्क्रीन लॉन्चर का व्यवहार उस होम स्क्रीन के कार्यान्वयनकर्ताओं तक होता है। विज्ञापित प्रशंसनीय गतिविधियों को शुरू करने पर सबसे अधिक ध्यान दिया जाता है, क्योंकि यह एक लॉन्चर की मुख्य भूमिका है। आपका ऐसी गतिविधि में स्वागत है जो finish()तुरंत कॉल करती है, लेकिन उपयोगकर्ता सोचेंगे कि आपका ऐप टूट गया है।
कॉमन्सवेयर

2
<action android:name="android.intent.action.MAIN"/>

इस आवेदन के लिए मुख्य गतिविधि है

 <category android:name="android.intent.category.LAUNCHER" />

यह LAUNCHER श्रेणी में है, जिसका अर्थ है कि यह एक ऐसे आइकन को प्राप्त करता है जो स्वयं को "लांचर" के रूप में समझता है, जैसे कि होम स्क्रीन

 <category android:name="android.intent.category.DEFAULT" />

StartActivity () के लिए कॉल हमेशा DEFAULT श्रेणी जोड़ देगा यदि कोई अन्य श्रेणी निर्दिष्ट नहीं है।

आम तौर पर सिर्फ android.intent.category.DEFAULTतभी जोड़ें जब आपके पास अन्य श्रेणियाँ हों। यह गारंटी देता है कि यदि इरादे का उपयोग करते हुए इरादे शुरू करने के लिए अनुरोध करना कोई श्रेणियाँ प्रदान नहीं करता है startActivity(intent), तो आपकी प्राप्ति गतिविधि उन इरादों को भी प्राप्त कर सकती है ।।

स्रोत: एंड्रॉइड डेवलपमेंट के लिए व्यस्त कोडर्स गाइड

https://commonsware.com/Android/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.