"Android.intent.category.DEFAULT" का उद्देश्य क्या है?


104

android.intent.category.DEFAULTइरादे फिल्टर की श्रेणी क्षेत्र में उपयोग करने का उद्देश्य क्या है ?


2
आपका यह कहना आपके आवेदन के लिए डिफ़ॉल्ट प्रविष्टि बिंदु है। देखें: developer.android.com/reference/android/content/…
Blundell

@ ब्लंडेल: इसलिए यदि कोई निहित इरादे से आता है, तो डिफ़ॉल्ट रूप से एक गतिविधि जो कि इरादे के फिल्टर में इसके cateory के रूप में कहा जाता है?
प्रवीण

1
मेरा मानना ​​है कि इसका मतलब यह है कि यह "हाँ का उपयोग करने के लिए गतिविधि है" यह पैकेज में निर्दिष्ट इरादों के फिल्टर में उपयोग के लिए है
ब्लंडेल

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

यदि उनके पास अलग-अलग इरादे वाले फिल्टर हैं, तो यह इरादे पर निर्भर करेगा।
ब्लंडेल

जवाबों:


112

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

डिफ़ॉल्ट से श्रेणी निर्धारित करने का मतलब यह नहीं है कि जब आपका ऐप लॉन्च होगा तो यह गतिविधि डिफ़ॉल्ट रूप से उपयोग की जाएगी। एक्टिविटी सिर्फ़ सिस्टम से कहती है कि " ओह मैं शुरू किया जा सकता है, भले ही स्टार्टर इंटेंट की श्रेणी कुछ भी नहीं पर सेट हो ! "


27
यह वास्तव में एक समझने योग्य व्याख्या थी। डॉक्स के इस उत्तर की तुलना करें: "सेट करें यदि गतिविधि डेटा के एक टुकड़े पर प्रदर्शन करने के लिए डिफ़ॉल्ट क्रिया (केंद्र प्रेस) के लिए एक विकल्प होना चाहिए। यह सेट करना उपयोगकर्ता को किसी भी गतिविधि के बिना किसी गतिविधि पर प्रदर्शन किए बिना इसे छिपाएगा। data "कितना आसान हो सकता है कि यह एक सुस्पष्ट वर्णन लिख सके ...
एंड्रियास

मैं इसके जनादेश के बारे में निश्चित नहीं हूँ, क्योंकि यह वैकल्पिक प्रतीत होता है क्योंकि बिना किसी इरादे के किसी भी गतिविधि को फ़िल्टर किया जा सकता है, फिर भी इसे एक अंतर्निहित गतिविधि कहा जा सकता है
humblerookie

6
दस्तावेज़ीकरण अब अधिक स्पष्ट है IMO: Android स्वचालित रूप से CATEGORY_DEFAULT श्रेणी को सभी अंतर्निहित इरादों को शुरू करने के लिए लागू करता है जो प्रारंभ () और startActivityForResult () के लिए है। इसलिए यदि आप चाहते हैं कि आपकी गतिविधि निहितार्थ प्राप्त करने के लिए हो, तो इसके इरादे के फिल्टर में "android.intent.category.DEFAULT" के लिए एक श्रेणी शामिल होनी चाहिए।
53

2
@humblerookie। मैंने इसे आज़माया है और यह DEFAULT श्रेणी के बिना काम नहीं करता है। यदि आप विश्वास नहीं करते कि मैं अपने लिए परीक्षा दे रहा हूँ।
बॉब उलांद

2
यदि केवल सभी ट्यूटोरियल इस तरह से लिखे गए थे। 2018 में हम अभी भी लकड़ी की भाषा का उपयोग क्यों करते हैं?
सूडोप्ल्ज़

24

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

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

संदर्भ:

http://developer.android.com/guide/components/intents-filters.html

उस पृष्ठ से निकालें:

एंड्रॉइड सभी निहित इरादों को tostartActivity () के रूप में मानता है जैसे कि वे कम से कम एक श्रेणी में शामिल हों: "android.intent.category.DEFAULT" (CATEGORY_DEFAULT स्थिर)। इसलिए, ऐसी गतिविधियाँ जो अंतर्निहित इरादे प्राप्त करने के लिए तैयार हैं, उनके इरादे के फिल्टर में "android.intent.category.DEFAULT" शामिल होना चाहिए। ("Android.intent.action.MAIN" और "android.intent.category.LAUNCHER" सेटिंग्स के साथ फ़िल्टर अपवाद हैं। वे नए कार्यों को शुरू करने वाली गतिविधियों को चिह्नित करते हैं और लॉन्चर स्क्रीन पर दर्शाए जाते हैं। वे "android .intent" शामिल कर सकते हैं। .Category.DEFAULT "श्रेणियों की सूची में, लेकिन इसकी आवश्यकता नहीं है।"


@Comptrol, आपका जवाब अब नीचे नहीं है। यह बढ़ रहा है। :-)
एलेन स्पार्टस

हां, लेकिन मैंने इसे उस राज्य में वापस ला दिया था जो यह था। इसलिए मैंने aypnything को समग्र रूप से नहीं बदला।
22zgür

1
मुझे यह उत्तर मेरी वर्तमान स्थिति-समझ आशय फिल्टर के लिए अधिक उपयोगी लगता है। धन्यवाद।
नियॉन वेज

1

यह वास्तव में यह सुनिश्चित करने के लिए है कि ऐप चलने पर आपकी अन्य गतिविधियों को कॉल किया जा सके। LAUNCHER उस गतिविधि को कर देगा जिसमें यह पहली गतिविधि है जो शुरू होती है। अन्य गतिविधियों को प्राप्त करने के इरादे का उपयोग करने के लिए, उन्हें DEFAULT लगाकर "वास्तविक" गतिविधियों के रूप में सूचीबद्ध किया जाना चाहिए। अगर मैं जानता हूं कि यह गलत है तो मुझे मत उद्धृत करो।


3
आपको अपने दावों के लिए संदर्भ प्रदान करने का प्रयास करना चाहिए। "अगर यह गलत है तो मुझे उद्धृत न करें" आपको इस नियम को ओवरराइड करने की अनुमति नहीं देता है।
verybadalloc

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

1

गतिविधियों को CATEGORY_DEFAULT का समर्थन करने की आवश्यकता होगी ताकि उन्हें Context.startActivity () द्वारा पाया जा सके।

अंतर्निहित उद्देश्य प्राप्त करने के लिए, आपको CATEGORY_DEFAULT श्रेणी को इरादे फ़िल्टर में शामिल करना होगा। तरीके startActivity () और startActivityForResult () सभी इंटेंट्स का इलाज करते हैं जैसे कि उन्होंने CATEGORY_DEFAULT श्रेणी घोषित की। यदि हम इसे अपने इरादे के फिल्टर में घोषित नहीं करते हैं, तो कोई भी निहित उद्देश्य हमारी गतिविधि का समाधान नहीं करेगा।


0

इसका उपयोग कुछ कार्रवाई को डिफ़ॉल्ट कार्रवाई (जैसा कि इसके नाम से पता चलता है) घोषित करने के लिए किया जाता है। आइए विचार करें कि हमारे पास एक नोटपैड ऐप है (एंड्रॉइड नोटपैड के नमूने की चर्चा करते हुए)। एप्लिकेशन के पहले पृष्ठ में सभी नोटपैड फ़ाइलों की एक सूची शामिल है। जब एक नोटपैड फ़ाइल को एडिट नोट, डिलीट नोट आदि जैसे किसी एक ऑपरेशन को चुना जाता है, तो प्रदर्शन किया जा सकता है। लेकिन मैं अपनी डिफ़ॉल्ट कार्रवाई के रूप में संपादित करना चाहता हूं जिसका अर्थ है जब मैं अपने कीपैड के केंद्र बटन को दबाता हूं, तो संपादन विंडो खुली होनी चाहिए।


1
यदि आप एंड्रॉइड नोटपैड के उदाहरण को देखते हैं, तो सभी गतिविधियां डिफ़ॉल्ट के रूप में चिह्नित की जाती हैं: developer.android.com/reference/android/content/Intent.html
पीटर Ajtai

0

https://developer.android.com/guide/components/intents-filters

निहित उद्देश्य प्राप्त करने के लिए, आपको CATEGORY_DEFAULT श्रेणी को इरादे फ़िल्टर में शामिल करना होगा। तरीके startActivity () और startActivityForResult () सभी इंटेंट्स का इलाज करते हैं जैसे कि उन्होंने CATEGORY_DEFAULT श्रेणी घोषित की। यदि आप इस श्रेणी को अपने इरादे के फिल्टर में घोषित नहीं करते हैं, तो कोई भी निहित इरादा आपकी गतिविधि का समाधान नहीं करेगा।


-1

वर्ग:

android.intent.category.DEFAULT

किसी निहित आशय से मेल खाता है। किसी भी अंतर्निहित इरादे को प्राप्त करने के लिए आपकी गतिविधि के लिए इस श्रेणी को शामिल किया जाना चाहिए।

https://codelabs.developers.google.com/codelabs/android-training-activity-with-implicit-intent/index.html?index=..%2F..%2Fandroid-training#6

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