- सिंटैक्स:
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:canDisplayOnRemoteDevices=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["colorMode", "density", "fontScale", "fontWeightAdjustment", "grammaticalGender", "keyboard", "keyboardHidden", "layoutDirection", "locale", "mcc", "mnc", "navigation", "orientation", "screenLayout", "screenSize", "smallestScreenSize", "touchscreen", "uiMode"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:enabledOnBackInvokedCallback=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:immersive=["true" | "false"] android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance" | "singleInstancePerTask"] android:lockTaskMode=["normal" | "never" | "if_whitelisted" | "always"] android:maxRecents="integer" android:maxAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:requireContentUriPermissionFromCaller=["none" | "read" | "readAndWrite" | "readOrWrite" | "write"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:showForAllUsers=["true" | "false"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > ... </activity>
- इसमें शामिल है:
<application>
- इसमें ये शामिल हो सकते हैं:
<intent-filter>
<meta-data>
<layout>
- विवरण:
- एक ऐसी गतिविधि (एक
Activity
सब-क्लास) का एलान करता है जो ऐप्लिकेशन के विज़ुअल यूज़र इंटरफ़ेस के हिस्से को लागू करता है. सभी गतिविधियां<activity>
से दिखाया जाना चाहिए एलिमेंट शामिल करना है. जिन जगहों के बारे में एलान नहीं किया गया है उन्हें नहीं देखा गया है और ये कभी काम नहीं करते. - विशेषताएं:
android:allowEmbedded
-
इससे पता चलता है कि गतिविधि को किसी अन्य व्यक्ति के एम्बेड किए गए चाइल्ड के तौर पर लॉन्च किया जा सकता है गतिविधि, खास तौर पर ऐसे मामलों में जहां बच्चा किसी कंटेनर में रहता है, जैसे कि
Display
, जिसका मालिकाना हक किसी अन्य गतिविधि के पास है. उदाहरण के लिए, गतिविधियां जो Wear कस्टम नोटिफ़िकेशन के लिए इस्तेमाल किए जाते हैं, वे इसका एलान करते हैं Wear डिवाइस, कॉन्टेक्स्ट स्ट्रीम में गतिविधि को दिखा सकता है प्रक्रिया में हैं.इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू
false
है. android:allowTaskReparenting
- गतिविधि को उस टास्क से माइग्रेट किया जा सकता है जिसे शुरू किया गया था
वह टास्क जो अगली बार उस टास्क के लिए तैयार हो
सामने. अगर इसे एक जगह से दूसरी जगह ले जाया जा सकता है, तो इसका समय
"true"
है. अगर यह एक जगह से दूसरी जगह ले जा सकता है, तो यह"false"
है टास्क वहीं से बने रहते हैं जहां से उन्हें शुरू किया गया था.अगर यह एट्रिब्यूट सेट नहीं किया गया है, तो इससे जुड़ी वैल्यू
allowTaskReparenting
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है<application>
एलिमेंट का एट्रिब्यूट गतिविधि पर लागू होता है. डिफ़ॉल्ट वैल्यू"false"
है.आम तौर पर, जब कोई गतिविधि शुरू की जाती है, तो वह इसके काम से जुड़ी होती है शुरू हुई थी और यह शुरुआत में सेव रहती है. इस एट्रिब्यूट का इस्तेमाल करके, इसे टास्क में फिर से बांटा जा सकता है की एक अफ़िनिटी है कि उसका मौजूदा टास्क कब न दिखाया जाए. आम तौर पर, इसका इस्तेमाल ऐप्लिकेशन की गतिविधियों की जगह बदलने के लिए किया जाता है उस ऐप्लिकेशन से जुड़े मुख्य टास्क पर भेज दिया जाता है.
उदाहरण के लिए, अगर किसी ईमेल संदेश में किसी वेब पेज का लिंक है, तो लिंक एक ऐसी गतिविधि को दिखाता है, जो पेज को दिखा सकती है. वह गतिविधि को ब्राउज़र ऐप्लिकेशन से तय किया जाता है, लेकिन इसे ईमेल के हिस्से के तौर पर लॉन्च किया जाता है टास्क. अगर इसे ब्राउज़र टास्क के साथ दोहराया जाता है, तो यह दिखता है कि ब्राउज़र के बाद अगला ब्राउज़र सामने आता है और ईमेल टास्क के समय वह मौजूद नहीं होता है साथ है.
किसी गतिविधि की अफ़िनिटी इनके ज़रिए तय होती है
taskAffinity
एट्रिब्यूट की वैल्यू सबमिट करें. अफ़िनिटी ऑडियंस (एक जैसी पसंद वाले दर्शक) किसी टास्क की मूल गतिविधि से जुड़ाव को ध्यान में रखकर तय किया जाता है. इसलिए, परिभाषा के मुताबिक, रूट ऐक्टिविटी हमेशा ऐसे टास्क में होती है जिसमें एक जैसी पसंद."singleTask"
या"singleInstance"
के लॉन्च मोड सिर्फ़ किसी टास्क के रूट में हो सकते हैं, फिर से पैरंटिंग की सुविधा,"standard"
और"singleTop"
तक सीमित है मोड. (launchMode
भी देखें एट्रिब्यूट.) android:alwaysRetainTaskState
- जिस टास्क में गतिविधि चल रही है वह हमेशा चालू रहती है
का रखरखाव करता है. अगर ऐसा है, तो
"true"
, और"false"
अगर सिस्टम टास्क को उसके शुरुआती हिस्से पर रीसेट कर सकता है कुछ स्थितियों में तय किया है. डिफ़ॉल्ट वैल्यू"false"
है. यह एट्रिब्यूट की वैल्यू सिर्फ़ टास्क की रूट गतिविधि के लिए होती है. इसे अनदेखा किया गया अन्य सभी गतिविधियों के लिए.आम तौर पर, सिस्टम किसी टास्क को हटा देता है. साथ ही, स्टैक से सभी गतिविधियां हटा दी जाती हैं रूट गतिविधि से ऊपर, कुछ परिस्थितियों में जब उपयोगकर्ता उसे दोबारा चुनता है पर क्लिक करें. आम तौर पर, ऐसा तब किया जाता है, जब उपयोगकर्ता टास्क को किसी तय समय तक दोहराना है, जैसे कि 30 मिनट.
हालांकि, जब इस एट्रिब्यूट की वैल्यू
"true"
होती है, तो उपयोगकर्ता हमेशा साइट पर वापस आते हैं साथ ही, टास्क को उसकी आखिरी स्थिति में जोड़े, भले ही वह उस टास्क तक कैसे पहुँचे. यह है ऐसे वेब ब्राउज़र जैसे ऐप् लिकेशन में उपयोगी है, जहां ऐसी स्थिति हो सकती है जिसे उपयोगकर्ता खोना न चाहें. उदाहरण के लिए, कई खुले हुए टैब. android:autoRemoveFromRecents
- इस एट्रिब्यूट वाली गतिविधि से लॉन्च किए गए टास्क,
हाल ही की स्क्रीन में
टास्क पूरा होता है. अगर
true
, टास्क है हाल ही की स्क्रीन से अपने-आप हट जाता है. यह कॉलर के इस्तेमाल को ओवरराइड करता हैFLAG_ACTIVITY_RETAIN_IN_RECENTS
. यह या तो एक बूलियन मान होना चाहिए"true"
या"false"
. android:banner
- एक ड्रॉ करने लायक संसाधन
इससे जुड़े आइटम के लिए, बड़ा ग्राफ़िकल बैनर उपलब्ध कराना. इसके साथ इस्तेमाल करें:
<activity>
टैग, ताकि किसी खास गतिविधि के लिए डिफ़ॉल्ट बैनर उपलब्ध कराया जा सके या<application>
टैग का उपयोग करें.ऐप्लिकेशन को दिखाने के लिए सिस्टम, बैनर का इस्तेमाल करता है Android TV की होम स्क्रीन पर. बैनर सिर्फ़ होम स्क्रीन पर दिखता है. इसलिए, यह केवल ऐसी गतिविधि वाले ऐप्लिकेशन द्वारा तय किया जाता है जो
CATEGORY_LEANBACK_LAUNCHER
इंटेंट.यह एट्रिब्यूट, ड्रॉ किए जा सकने वाले ऐसे संसाधन के रेफ़रंस के तौर पर सेट किया गया है जिसमें शामिल है इमेज, जैसे कि
"@drawable/banner"
. कोई डिफ़ॉल्ट बैनर नहीं है.अधिक जानकारी के लिए, देखें 'टीवी ऐप्लिकेशन का इस्तेमाल शुरू करें' सेक्शन में, होम स्क्रीन पर बैनर उपलब्ध कराएं.
android:canDisplayOnRemoteDevices
-
इससे पता चलता है कि गतिविधि को ऐसे रिमोट डिवाइस पर दिखाया जा सकता है या नहीं जो हो सकता है कि उस पर Android चल रहा हो या नहीं. यह या तो एक बूलियन मान होना चाहिए
"true"
या"false"
.इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू
"true"
है. android:clearTaskOnLaunch
- टास्क से सभी गतिविधियों को हटा दिया जाए या नहीं, सिर्फ़ इन गतिविधियों को
रूट गतिविधि का पता लगाता है, जब उसे होम स्क्रीन से फिर से लॉन्च किया जाता है.
"true"
अगर टास्क को हमेशा उसकी रूट गतिविधि तक हटा दिया जाता है, और अगर नहीं है, तो"false"
. डिफ़ॉल्ट वैल्यू"false"
है. यह एट्रिब्यूट का मतलब सिर्फ़ उन गतिविधियों के लिए है जिनमें कोई नया टास्क शुरू किया जाता है—यानी मूल गतिविधि. टास्क में मौजूद दूसरी सभी गतिविधियों के लिए इसे अनदेखा कर दिया जाता है.वैल्यू
"true"
होने पर, जब भी उपयोगकर्ता टास्क शुरू करेंगे, तब वे उसकी मूल गतिविधि पर ध्यान दिया जाता है, चाहे वे पिछली बार क्या कर रहे हों फिर चाहे उन्होंने वापस जाएं या होम बटन का इस्तेमाल किया हो इसे छोड़ो. जब वैल्यू"false"
होती है, तो टास्क की गतिविधियों को हटाया जा सकता है कुछ परिस्थितियों में, लेकिन हमेशा नहीं. ज़्यादा जानकारी के लिए, देखेंalwaysRetainTaskState
एट्रिब्यूट की वैल्यू सबमिट करें.मान लीजिए कि उपयोगकर्ता ने होम स्क्रीन से गतिविधि P को लॉन्च किया, इसके बाद, गतिविधि सवाल पर जाती है. इसके बाद, उपयोगकर्ता होम पेज पर टैप करता है और फिर वापस आ जाता है गतिविधि P. आम तौर पर, उपयोगकर्ता को गतिविधि Q दिखती है, क्योंकि वे अंतिम बार P के कार्य में कर रहे थे. हालांकि, अगर P इस फ़्लैग को
"true"
पर सेट करता है, तो सभी साथ ही, गतिविधियों को भी ध्यान में रखा जाता है. इस मामले में, Q—उपयोगकर्ता के लॉन्च करने पर, इन्हें हटा दिया जाता है गतिविधि P. इसलिए, टास्क पर वापस लौटने पर, उपयोगकर्ता को सिर्फ़ P दिखेगा.अगर यह एट्रिब्यूट और
allowTaskReparenting
दोनों"true"
हैं. ऐसी सभी गतिविधियों को एक जैसी पसंद वाले टास्क हैं. इसके बाद, बाकी गतिविधियां छोड़ दी जाती हैं.अगर
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
सेट नहीं है, तो इस एट्रिब्यूट को अनदेखा कर दिया जाता है. android:colorMode
गतिविधि के रंग वाले मोड के बारे में बताता है. अगर बताया गया है, तो यह
hdr
याwideColorGamut
.अगर
hdr
, अनुरोध करता है कि गतिविधि को हाई डाइनैमिक रेंज में दिखाया जाए, अगर डिवाइस पर यह सुविधा काम करती है.अगर
wideColorGamut
, गतिविधि को वाइड कलर गैमट मोड में दिखाने का अनुरोध करता है काम करता है. वाइड कलर गैमट मोड में, विंडोSRGB
गैमट से और चमकीले रंगों को दिखाया जा सकता है. अगर इस डिवाइस में वाइड कलर गैमट रेंडरिंग काम नहीं करती, तो यह विशेषता का कोई प्रभाव नहीं है. वाइड कलर मोड में रेंडर करने के बारे में ज़्यादा जानने के लिए, यहां देखें वाइड रंगों वाले कॉन्टेंट की मदद से ग्राफ़िक को बेहतर बनाएं.android:configChanges
- यह नीति, उन कॉन्फ़िगरेशन बदलावों की सूची बनाती है जिन्हें गतिविधि खुद मैनेज करती है. कॉन्फ़िगरेशन के दौरान
रनटाइम के दौरान बदलाव होता है, गतिविधि बंद हो जाती है और डिफ़ॉल्ट रूप से फिर से चालू हो जाती है, लेकिन
इस एट्रिब्यूट वाला कॉन्फ़िगरेशन, गतिविधि को रीस्टार्ट होने से रोकता है. इसके बजाय,
गतिविधि चलती रहती है और उसके
onConfigurationChanged()
तरीके को कॉल किया जाता है.ध्यान दें: ऐप्लिकेशन को बेहतर बनाने के लिए, इस एट्रिब्यूट का इस्तेमाल सिर्फ़ खास मामलों में करें और जवाब देने में लगने वाला समय. ज़्यादा जानकारी के लिए, कॉन्फ़िगरेशन के बदलाव मैनेज करना देखें.
इस एट्रिब्यूट के लिए मान्य वैल्यू नीचे दी गई हैं. एक से ज़्यादा मान हैं इन्हें
|
से अलग किया जाता है, जैसे कि"locale|navigation|orientation"
.वैल्यू ब्यौरा "colorMode"
स्क्रीन की कलर मोड क्षमताओं (कलर गामट या डाइनैमिक रेंज) में बदलाव हुए हैं.
ध्यान दें: गतिविधि के लिए
colorMode
एट्रिब्यूट या रनटाइम के दौरान जिस कलर मोड का अनुरोध किया जाता है वह अलग-अलग कलर मोड की क्षमता से अलग होता है. किसी गतिविधि के ज़रिए इस्तेमाल किए जा रहे कलर मोड को बदलने से कॉन्फ़िगरेशन में बदलाव नहीं होता, क्योंकि डिसप्ले की रंग क्षमताओं में कोई बदलाव नहीं हुआ है."density"
डिसप्ले सघनता में बदलाव. जैसे, जब उपयोगकर्ता किसी कोई दूसरा डिसप्ले स्केल या कोई दूसरा डिसप्ले चालू हो.
एपीआई लेवल 24 में जोड़ा गया.
"fontScale"
फ़ॉन्ट स्केलिंग फ़ैक्टर में बदलाव. जैसे, जब कोई उपयोगकर्ता चुनता है एक नया ग्लोबल फ़ॉन्ट साइज़. "fontWeightAdjustment"
फ़ॉन्ट की मोटाई बढ़ाने की मात्रा बदल गई है. "grammaticalGender"
भाषा के व्याकरण के हिसाब से लिंग बदल गया है. यहां जाएं: GrammaticalInflectionManager
.एपीआई लेवल 34 में जोड़ा गया.
"keyboard"
कीबोर्ड के टाइप में बदलाव. जैसे, जब उपयोगकर्ता बाहरी कीबोर्ड को प्लग-इन करता है. "keyboardHidden"
कीबोर्ड सुलभता में बदलाव. उदाहरण के लिए, जब उपयोगकर्ता को हार्डवेयर कीबोर्ड दिखेगा. "layoutDirection"
लेआउट की दिशा में बदलाव, जैसे कि बाएं से दाएं (LTR) से दाएं से बाएं (RTL).
एपीआई लेवल 17 में जोड़ा गया.
"locale"
स्थान-भाषा में बदलाव. जैसे, जब उपयोगकर्ता नई जगह चुनता है वह भाषा जिसमें टेक्स्ट दिखता है. "mcc"
जब IMSI मोबाइल देश कोड (एमसीसी) में बदलाव हुआ हो, जब किसी सिम का पता चलता है, तो एमसीसी अपडेट हो जाता है. "mnc"
IMSI मोबाइल नेटवर्क कोड (MNC) में बदलाव जब एक सिम का पता चलने पर एमएनसी अपडेट किया जा सकता है. "navigation"
टीए को नेविगेशन टाइप (ट्रैकबॉल या डी-पैड) में बदला जा सकता है. आम तौर पर, ऐसा नहीं होता है. "orientation"
स्क्रीन ओरिएंटेशन में बदलाव, जैसे कि जब उपयोगकर्ता डिवाइस को घुमाता है.
ध्यान दें: अगर आपके ऐप्लिकेशन को Android 3.2 (एपीआई लेवल 13) या उसके बाद का वर्शन,
"screenLayout"
और"screenSize"
कॉन्फ़िगरेशन, क्योंकि स्क्रीन लेआउट और स्क्रीन का साइज़ तब बदल सकता है, जब डिवाइस पोर्ट्रेट और लैंडस्केप ओरिएंटेशन के बीच स्विच करता है."screenLayout"
स्क्रीन लेआउट में बदलाव. जैसे, जब कोई दूसरी डिसप्ले चालू हो जाए. "screenSize"
मौजूदा स्क्रीन साइज़ में कोई बदलाव.
यह मौजूदा साइज़ में, मौजूदा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) होता है, ताकि उपयोगकर्ता जब लैंडस्केप के बीच स्विच करे, तो यह बदल जाए और पोर्ट्रेट मोड में हो.
एपीआई लेवल 13 में जोड़ा गया.
"smallestScreenSize"
डिवाइस की स्क्रीन के साइज़ में बदलाव.
यह ओरिएंटेशन पर ध्यान दिए बिना साइज़ में बदलाव दिखाता है. इसलिए, यह सिर्फ़ असल स्क्रीन का साइज़ बदलने पर बदलाव होता है. जैसे, किसी दूसरे डिवाइस पर स्विच करना बाहरी डिसप्ले. इस कॉन्फ़िगरेशन में हुआ बदलाव, किसी बदलाव की वजह से हो सकता है में
smallestWidth
कॉन्फ़िगरेशन.एपीआई लेवल 13 में जोड़ा गया.
"touchscreen"
टचस्क्रीन में बदलाव किया गया है. आम तौर पर, ऐसा नहीं होता है. "uiMode"
यूज़र इंटरफ़ेस मोड में होने वाला बदलाव. जैसे, जब उपयोगकर्ता, या नाइट मोड बदल जाता है. ज़्यादा के लिए विभिन्न यूआई मोड के बारे में जानकारी, देखें UiModeManager
.एपीआई लेवल 8 में जोड़ा गया.
कॉन्फ़िगरेशन में किए गए ये सभी बदलाव, रिसॉर्स वैल्यू पर असर डाल सकते हैं. का इस्तेमाल करें. इसलिए, जब
onConfigurationChanged()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कहा जाता है, तो आम तौर पर फिर से बदलाव को सही तरीके से मैनेज करने के लिए, व्यू लेआउट और ड्रॉएबल के साथ-साथ सभी रिसॉर्स को फिर से हासिल करें.ध्यान दें: कॉन्फ़िगरेशन में हुए कई विंडो से जुड़े बदलावों को मैनेज करने के लिए,
"screenLayout"
और"smallestScreenSize"
, दोनों का इस्तेमाल करें. मल्टी-विंडो, Android 7.0 (एपीआई लेवल 24) या इसके बाद के वर्शन में काम करती है. android:directBootAware
क्या गतिविधि Direct-Boot जानकारी है—यानी, क्या यह उपयोगकर्ता के डिवाइस को अनलॉक करने से पहले काम करता है.
ध्यान दें: इस दौरान डायरेक्ट बूट, एक ऐसी गतिविधि है जो आपकी ऐप्लिकेशन सिर्फ़ वही डेटा ऐक्सेस कर सकती है जो डिवाइस से सुरक्षित स्टोरेज.
डिफ़ॉल्ट वैल्यू
"false"
है.android:documentLaunchMode
- यह तय करता है कि हर बार टास्क के लॉन्च होने पर, गतिविधि का नया इंस्टेंस कैसे जोड़ा जाता है.
यह एट्रिब्यूट, उपयोगकर्ता को एक ही ऐप्लिकेशन के एक से ज़्यादा दस्तावेज़ रखने की अनुमति देता है
हाल ही की स्क्रीन में दिखाई देते हैं.
इस एट्रिब्यूट की चार वैल्यू होती हैं. इनकी मदद से, उपयोगकर्ता के दस्तावेज़ खोलने पर ये इफ़ेक्ट दिखते हैं ऐप्स के साथ:
वैल्यू ब्यौरा "intoExisting"
सिस्टम ऐसे टास्क की खोज करता है जिसका बेस इंटेंट ComponentName
और डेटा यूआरआई है वे लॉन्चिंग इंटेंट से मेल खाते हों. अगर सिस्टम को ऐसा कोई टास्क मिलता है, तो सिस्टम टास्क और रीस्टार्ट होता है. इसमें रूट गतिविधि को कॉल किया जाता हैonNewIntent(android.content.Intent)
. अगर सिस्टम को ऐसा कोई टास्क नहीं मिलता है, तो वह एक नया टास्क बना देता है."always"
इस गतिविधि की मदद से, दस्तावेज़ के लिए एक नया टास्क बनाया जाता है. भले ही, दस्तावेज़ पहले से खुला हो. यह दोनों FLAG_ACTIVITY_NEW_DOCUMENT
को सेट करने जैसा ही है औरFLAG_ACTIVITY_MULTIPLE_TASK
फ़्लैग."none"
गतिविधि के दौरान, गतिविधि के लिए नया टास्क नहीं बनाया जाता. यह डिफ़ॉल्ट वैल्यू है, जो FLAG_ACTIVITY_NEW_TASK
के सेट होने पर ही कोई नया टास्क बनाता है. हाल ही की स्क्रीन डिफ़ॉल्ट रूप से, गतिविधि को ठीक उसी तरह देखती है जैसे वह करती है: इस स्क्रीन पर, ऐप्लिकेशन, जो उपयोगकर्ता की आखिरी बार हुई गतिविधि से फिर शुरू होता है."never"
गतिविधि को नए दस्तावेज़ में लॉन्च नहीं किया गया है, भले ही इंटेंट में यह शामिल हो FLAG_ACTIVITY_NEW_DOCUMENT
. इसे सेट करने से व्यवहार बदल जाता हैFLAG_ACTIVITY_NEW_DOCUMENT
औरFLAG_ACTIVITY_MULTIPLE_TASK
फ़्लैग, अगर इनमें से किसी एक को सेट किया गया हो गतिविधि दिखाई देती है और हाल ही की स्क्रीन पर ऐप्लिकेशन के लिए एक टास्क दिखाया जाता है, जो यहां से फिर से शुरू हो जाता है उपयोगकर्ता ने पिछली बार किसी गतिविधि को शुरू किया था.ध्यान दें:
"none"
और"never"
के अलावा, दूसरी वैल्यू के लिए गतिविधि कोlaunchMode="standard"
से तय किया गया है. अगर यह एट्रिब्यूट तय नहीं किया गया है,documentLaunchMode="none"
का इस्तेमाल किया गया है. android:enabled
- गतिविधि को सिस्टम से इंस्टैंशिएट किया जा सकता है या नहीं. यह समय है
अगर हो सकता है, तो
"true"
और अगर नहीं है, तो"false"
. डिफ़ॉल्ट वैल्यू"true"
है.<application>
एलिमेंट का अपनाenabled
है विशेषता सेट की जा सकती है, जो ऐप्लिकेशन के सभी कॉम्पोनेंट पर लागू होती है. इनमें गतिविधियां भी शामिल हैं. कॉन्टेंट बनाने<application>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है और<activity>
एट्रिब्यूट, दोनों ही"true"
होने चाहिए, क्योंकि ये दोनों डिफ़ॉल्ट रूप से होते हैं, ताकि सिस्टम गतिविधि को इंस्टैंशिएट कर सके. अगर इनमें से कोई एक है"false"
है, इसे इंस्टैंशिएट नहीं किया जा सकता. android:enableOnBackInvokedCallback
- इस फ़्लैग की मदद से, गतिविधि के लेवल पर सिस्टम के अनुमानित ऐनिमेशन के लिए ऑप्ट-इन किया जा सकता है. यह व्यवहार
इसकी मदद से, एक साथ कई काम करने वाले बड़े ऐप्लिकेशन को पिछले जेस्चर पर माइग्रेट करना और भी आसान हो जाता है.
android:enableOnBackInvokedCallback=false
को सेट करने पर, अनुमानित व्यू की सुविधा बंद हो जाती है आपने टैग कहां सेट किया है इस आधार पर गतिविधि के स्तर पर या ऐप्लिकेशन के स्तर पर ऐनिमेशन, साथ ही, सिस्टम कोOnBackInvokedCallback
प्लैटफ़ॉर्म एपीआई पर आने वाले कॉल को अनदेखा करने का निर्देश देता है. android:excludeFromRecents
इस गतिविधि से शुरू किए गए काम को से बाहर रखा गया है या नहीं हाल ही की स्क्रीन. मतलब, जब यह गतिविधि किसी नए टास्क के लिए इस्तेमाल किया जाता है, तो इस एट्रिब्यूट से यह तय होता है कि वह टास्क, हाल ही में इस्तेमाल किए गए ऐप्लिकेशन की सूची में दिखेगा या नहीं. यह समय है अगर टास्क को सूची से बाहर रखा गया है, तो
"true"
;"false"
अगर यह शामिल है. डिफ़ॉल्ट वैल्यू"false"
है.android:exported
क्या गतिविधि को अन्य कॉम्पोनेंट से लॉन्च किया जा सकता है ऐप्लिकेशन:
- अगर
"true"
, गतिविधि किसी भी ऐप्लिकेशन के लिए ऐक्सेस की जा सकती है और उसे सटीक तरीक़े से लॉन्च किया जा सकता है क्लास का नाम. - अगर
"false"
, गतिविधि को सिर्फ़ इसके कॉम्पोनेंट से लॉन्च किया जा सकता है एक ही ऐप्लिकेशन, एक ही यूज़र आईडी वाले ऐप्लिकेशन या खास सिस्टम के कॉम्पोनेंट. कोई इंटेंट फ़िल्टर न होने पर, यह डिफ़ॉल्ट वैल्यू होती है.
अगर आपके ऐप्लिकेशन की किसी गतिविधि में इंटेंट फ़िल्टर शामिल हैं, तो इस एलिमेंट को अन्य ऐप्लिकेशन को यह सुविधा चालू करने की अनुमति देने के लिए,
"true"
. उदाहरण के लिए, अगर गतिविधि मुख्य गतिविधि है ऐप्लिकेशन की हैं और इसमेंcategory
शामिल हैandroid.intent.category.LAUNCHER
.अगर यह एलिमेंट
"false"
पर सेट है और कोई ऐप्लिकेशन गतिविधि शुरू करने की कोशिश करता है, तो सिस्टमActivityNotFoundException
.यह एट्रिब्यूट, किसी गतिविधि के एक्सपोज़र को सीमित करने का अकेला तरीका नहीं है. का इस्तेमाल करें. अनुमतियों का इस्तेमाल उन बाहरी इकाइयों को सीमित करने के लिए भी किया जाता है जो गतिविधि शुरू कर सके. ज़्यादा जानकारी के लिए,
permission
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एट्रिब्यूट की वैल्यू सबमिट करें.- अगर
android:finishOnTaskLaunch
- क्या गतिविधि का कोई मौजूदा इंस्टेंस बंद है,
रूट गतिविधि को छोड़कर, जब उपयोगकर्ता
होम स्क्रीन. अगर इसे बंद किया जाता है, तो यह
"true"
होगा. साथ ही,"false"
अगर नहीं है. डिफ़ॉल्ट वैल्यू"false"
है.अगर यह एट्रिब्यूट और
allowTaskReparenting
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है दोनों"true"
हैं, यह एट्रिब्यूट दूसरे एट्रिब्यूट से बेहतर है. की अफ़िनिटी गतिविधि को अनदेखा कर दिया जाता है. इस गतिविधि को फिर से पैरंट नहीं बनाया गया है, लेकिन इसे खत्म कर दिया गया है.अगर
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
सेट नहीं है, तो इस एट्रिब्यूट को अनदेखा कर दिया जाता है. android:hardwareAccelerated
- इसके लिए, हार्डवेयर की मदद से तेज़ी से रेंडर करने की सुविधा चालू है या नहीं
गतिविधि. अगर चालू है, तो
"true"
और अगर चालू है, तो"false"
नहीं. डिफ़ॉल्ट वैल्यू"false"
है.Android 3.0 और इसके बाद वाले वर्शन पर, हार्डवेयर से तेज़ी से खोला गया OpenGL रेंडरर है कई सामान्य 2D ग्राफ़िक्स के प्रदर्शन में सुधार करने के लिए ऐप्लिकेशन के लिए उपलब्ध है कार्रवाइयां. हार्डवेयर की मदद से तैयार किया गया रेंडरर चालू होने पर, ज़्यादातर कार्रवाइयां कैनवस, Paint, Xfermode, ColorFilter, Shader, और Camera में एक्सेलरेटर की गई कार्रवाई.
इससे ऐनिमेशन, आसानी से स्क्रोल करने, और बेहतर तरीके से स्क्रोल करता है प्रतिक्रियात्मकता कुल मिलाकर उन एप्लिकेशन पर भी लागू होती है जो स्पष्ट रूप से उपयोग में नहीं आते फ़्रेमवर्क की OpenGL लाइब्रेरी पर लागू होगा. ज़्यादा संसाधन होने की वजह से, अगर आपको हार्डवेयर से तेज़ी लाने की सुविधा चालू करनी है, तो आपका ऐप्लिकेशन ज़्यादा रैम का इस्तेमाल करता है.
OpenGL 2D के सभी ऑपरेशन में तेज़ी नहीं होती है. अगर आप यह सुविधा चालू करते हैं, तो के लिए, परीक्षण करें कि आपका एप्लिकेशन बिना किसी गड़बड़ी के रेंडरर का इस्तेमाल कर सकते हैं.
android:icon
गतिविधि दिखाने वाला आइकॉन. लोगों को यह आइकॉन तब दिखता है, जब गतिविधि को स्क्रीन पर दिखाना ज़रूरी है. उदाहरण के लिए, आइकन टास्क शुरू करने वाली गतिविधियों के लिए, लॉन्चर विंडो में दिखाया जाता है. आइकॉन के साथ अक्सर एक लेबल होता है; लेबल के बारे में जानकारी के लिए,
android:label
एट्रिब्यूट देखें.यह एट्रिब्यूट, ड्रॉ किए जा सकने वाले ऐसे संसाधन के रेफ़रंस के तौर पर सेट किया गया है जिसमें शामिल है इमेज की परिभाषा. अगर यह सेट नहीं है, तो ऐप्लिकेशन के लिए तय किया गया आइकॉन इसके बजाय, इसका इस्तेमाल पूरी तरह से किया जाता है. ज़्यादा जानकारी के लिए, देखें
<application>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एलिमेंट काicon
एट्रिब्यूट.गतिविधि का आइकॉन, भले ही उसे यहां सेट किया गया हो या
<application>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एलिमेंट, सभी गतिविधि के इंटेंट फ़िल्टर का डिफ़ॉल्ट आइकॉन भी है. ज़्यादा जानकारी के लिए, देखें<intent-filter>
एलिमेंटicon
एट्रिब्यूट की वैल्यू सबमिट करें.android:immersive
- मौजूदा गतिविधि के लिए इमर्सिव मोड की सेटिंग सेट करती है. अगर यह
"true"
है, तोActivityInfo.flags
सदस्य के पास हमेशाFLAG_IMMERSIVE
बिट सेट हो, भले हीsetImmersive()
तरीके का इस्तेमाल करके, रनटाइम के दौरान इमर्सिव मोड बदल जाता है. android:label
गतिविधि के लिए उपयोगकर्ता को पढ़ने लायक लेबल. लेबल, स्क्रीन पर दिखता है जब उपयोगकर्ता को गतिविधि दिखाई जाती है. यह अक्सर इसके साथ प्रदर्शित किया जाता है गतिविधि आइकॉन पर क्लिक करें. अगर यह एट्रिब्यूट सेट नहीं किया गया है, तो ऐप्लिकेशन के लिए पूरे ऐप्लिकेशन के लिए सेट किया गया लेबल का इस्तेमाल किया गया है.
<application>
एलिमेंट देखेंlabel
एट्रिब्यूट की वैल्यू सबमिट करें.गतिविधि का लेबल, भले ही उसे यहां सेट किया गया हो या
<application>
एलिमेंट, डिफ़ॉल्ट लेबल का इस्तेमाल करें. ज़्यादा जानकारी के लिए, देखें<intent-filter>
एलिमेंटlabel
एट्रिब्यूट की वैल्यू सबमिट करें.लेबल को किसी स्ट्रिंग संसाधन के रेफ़रंस के तौर पर सेट किया जाता है इसे यूज़र इंटरफ़ेस की अन्य स्ट्रिंग की तरह ही स्थानीय भाषा में लिखा जा सकता है. हालांकि, ऐप्लिकेशन डेवलप करते समय, आपकी सुविधा के हिसाब से, इसे रॉ स्ट्रिंग के तौर पर भी सेट किया जा सकता है.
android:launchMode
गतिविधि लॉन्च करने के तरीके के बारे में निर्देश. पांच मोड हैं, जो गतिविधि फ़्लैग (
FLAG_ACTIVITY_*
कॉन्सटेंट) के साथ मिलकर काम करते हैंIntent
ऑब्जेक्ट में यह पता लगाने के लिए किया जा सकता है कि कब क्या होगा किसी इंटेंट को हैंडल करने के लिए गतिविधि को कॉल किया जाता है:"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"
डिफ़ॉल्ट मोड
"standard"
है.जैसा कि नीचे दी गई टेबल में दिखाया गया है, मोड दो मुख्य ग्रुप में आते हैं. इनमें एक तरफ़
"standard"
और"singleTop"
गतिविधियां की गई हैं और"singleTask"
,"singleInstance"
, और दूसरी बार"singleInstancePerTask"
गतिविधियां. एक गतिविधि"standard"
या"singleTop"
लॉन्च मोड को कई बार इंस्टैंशिएट किया जा सकता है.इंस्टेंस किसी भी टास्क से जुड़े हो सकते हैं साथ ही, उसे गतिविधि टास्क में कहीं भी देखा जा सकता है. आम तौर पर, वे टास्क में लॉन्च किया गया,
startActivity()
, जब तक किIntent
ऑब्जेक्ट मेंFLAG_ACTIVITY_NEW_TASK
निर्देश दिया जाता है, इस मामले में कोई दूसरा टास्क चुना जाता है. ज़्यादा जानकारी के लिए, देखेंtaskAffinity
एट्रिब्यूट की वैल्यू सबमिट करें.इसके उलट,
"singleTask"
,"singleInstance"
, और"singleInstancePerTask"
गतिविधियों के अलग-अलग व्यवहार हैं. ऐक्टिविटी टास्क के रूट में"singleInstancePerTask"
हमेशा मौजूद रहता है. साथ ही, डिवाइस सिर्फ़ एक इंस्टेंस होल्ड कर सकता है एक बार में"singleInstance"
गतिविधि, जबकि"singleInstancePerTask
गतिविधि को कई बार इंस्टैंशिएट किया जा सकता है करते हैं, तोFLAG_ACTIVITY_MULTIPLE_TASK
याFLAG_ACTIVITY_NEW_DOCUMENT
सेट है."singleTask"
के लॉन्च मोड के साथ होने वाली गतिविधि में,"singleInstance"
और के व्यवहार"singleInstancePerTask"
: गतिविधि को एक से ज़्यादा इंस्टैंशिएट किया जा सकता है समय के साथ-साथ, एक हीtaskAffinity
के टास्क में कहीं भी मौजूद हो सकता है. हालांकि, डिवाइस में मौजूदा जगह की जानकारी को ट्रैक करने के लिए, गतिविधि टास्क के रूट में"singleTask"
गतिविधि."standard"
और"singleTop"
मोड एक-दूसरे से अलग हैं हर बार"standard"
के लिए एक नया इंटेंट होने पर गतिविधि है, तो उस इंटेंट का जवाब देने के लिए क्लास का एक नया इंस्टेंस बनाया जाता है. हर इंस्टेंस एक इंटेंट हैंडल करता है. इसी तरह,"singleTop"
गतिविधि का नया इंस्टेंस भी नए इंटेंट को हैंडल करने के लिए बनाया गया है.हालांकि, अगर टारगेट टास्क में पहले से ही गतिविधि के मौजूदा इंस्टेंस, जो कि इंस्टेंस के सबसे ऊपर है, नए इंटेंट को पाने के लिए,
onNewIntent()
कॉल. नया इंस्टेंस नहीं बनाया गया है. नहीं तो—अगर"singleTop"
गतिविधि, टारगेट टास्क में है, लेकिन सबसे ऊपर नहीं या अगर वह किसी स्टैक के सबसे ऊपर है, लेकिन टारगेट किए गए टास्क में नहीं है—तो नया इंस्टेंस बनाया और स्टैक पर पुश किया गया.इसी तरह, अगर उपयोगकर्ता नेविगेट करता है up मौजूदा स्टैक पर कोई गतिविधि करता है, तो व्यवहार लॉन्च मोड पर सेट करें. अगर माता-पिता की गतिविधि में लॉन्च मोड
singleTop
है (याup
इंटेंट मेंFLAG_ACTIVITY_CLEAR_TOP
है), तो पैरंट को जो स्टैक में सबसे ऊपर है और इसकी स्थिति को सुरक्षित रखा गया है.नेविगेशन इंटेंट मिल गया है अभिभावक की गतिविधि के
onNewIntent()
के हिसाब से तरीका. अगर माता-पिता की गतिविधि में लॉन्च मोडstandard
है, औरup
इंटेंट मेंFLAG_ACTIVITY_CLEAR_TOP
, मौजूदा गतिविधि और इसकी पैरंट, दोनों स्टैक से पॉप-ऑफ़ होते हैं और नेविगेशन इंटेंट पाने के लिए, पैरंट गतिविधि का एक नया इंस्टेंस बनाया जाता है."singleInstance"
मोड,"singleTask"
से भी अलग है और"singleInstancePerTask"
का सिर्फ़ एक सम्मान है: एक गतिविधि"singleTask"
या"singleInstancePerTask"
लॉन्च मोड अन्य गतिविधियों की अनुमति देता है, ज़रूरी है कि"standard"
और"singleTop"
गतिविधियां, इस टास्क में शामिल हों.ऐप्लिकेशन वहीं,
"singleInstance"
गतिविधि के आधार पर, किसी और गतिविधि की अनुमति नहीं है इसके टास्क में शामिल हैं. टास्क में सिर्फ़ यही गतिविधि होनी चाहिए. अगर यह कोई दूसरी गतिविधि शुरू करता है, तो वह गतिविधि किसी दूसरे टास्क को असाइन की जाती है, जैसे कि अगरFLAG_ACTIVITY_NEW_TASK
इंटेंट में थे.इस्तेमाल के उदाहरण लॉन्च मोड एक से ज़्यादा इंस्टेंस? टिप्पणियां ज़्यादातर गतिविधियों के लिए सामान्य लॉन्च "standard"
हां डिफ़ॉल्ट. सिस्टम, हमेशा टारगेट टास्क और इंटेंट को उस पर रूट करता है. "singleTop"
शर्तों के साथ अगर टारगेट किए गए टास्क के ऊपर, गतिविधि का कोई इंस्टेंस पहले से मौजूद है, तो सिस्टम, एक कॉल के ज़रिए उस इंस्टेंस पर इंटेंट को रूट करने के लिए, अपने onNewIntent()
तरीके का इस्तेमाल करता है. गतिविधि का नया इंस्टेंस.खास प्रॉडक्ट लॉन्च
(सामान्य इस्तेमाल के लिए इसका सुझाव नहीं दिया जाता)"singleTask"
शर्तों के साथ सिस्टम, नए टास्क के रूट में गतिविधि बनाता है या एक जैसे अफ़िनिटी वाले किसी टास्क में गतिविधि का पता लगाता है. अगर गतिविधि का कोई इंस्टेंस पहले से मौजूद है और टास्क के रूट में है, तो सिस्टम यह इंटेंट को कॉल के ज़रिए, अपने onNewIntent()
वाले तरीके की मदद से मौजूदा इंस्टेंस पर रूट करता है नया सवाल."singleInstance"
नहीं "singleTask"
की तरह. हालांकि, सिस्टम इसे लॉन्च नहीं करता अन्य गतिविधियों के लिए इस्तेमाल किया जा सकता है. यह गतिविधि हमेशा सदस्य ही होगा."singleInstancePerTask"
शर्तों के साथ यह गतिविधि, टास्क की मुख्य गतिविधि के तौर पर ही चल सकती है. गतिविधि है जिससे टास्क बनाया गया था. इसलिए, आपको सिर्फ़ एक बार टास्क में इस गतिविधि को जोड़ा है. हालांकि, अलग-अलग टास्क में गतिविधि को कई बार इंस्टैंशिएट किया जा सकता है. जैसा कि पिछली टेबल में दिखाया गया है,
"standard"
डिफ़ॉल्ट मोड है और यह यह सुविधा कई तरह की गतिविधियों के लिए सही है."singleTop"
भी कई तरह की गतिविधियों के लिए, सामान्य और उपयोगी लॉन्च मोड. अन्य मोड,"singleTask"
,"singleInstance"
, और"singleInstancePerTask"
हैं ज़्यादातर ऐप्लिकेशन के लिए सही नहीं है. इनकी वजह से, ऐसा इंटरैक्शन मॉडल मिलता है जो किसी है और अन्य ज़्यादातर ऐप्लिकेशन से काफ़ी अलग है.आप चाहे किसी भी लॉन्च मोड को चुनें, ऐप्लिकेशन की उपयोगिता की जांच ज़रूर करें लॉन्च के दौरान और उस पर वापस नेविगेट करने के दौरान गतिविधि अन्य गतिविधियों और टास्क को पूरा करने के लिए, 'वापस जाएँ' बटन का इस्तेमाल करें.
लॉन्च मोड और
Intent
के साथ उनके इंटरैक्शन के बारे में ज़्यादा जानकारी फ़्लैग, देखें Tasks और पिछली गतिविधियां.android:lockTaskMode
- यह तय करता है कि सिस्टम इस गतिविधि को तब कैसे दिखाता है, जब डिवाइस
टास्क मोड लॉक करें.
Android, किसी भी टास्क को कीऑस्क जैसे इमर्सिव तरीके से करता है. इस मोड को लॉक टास्क मोड कहते हैं. जब सिस्टम ऐप्लिकेशन, लॉक टास्क मोड में काम करते हैं, डिवाइस इस्तेमाल करने वाले लोग आम तौर पर सूचनाएं नहीं देख सकते, अनुमति नहीं दिए गए ऐप्लिकेशन ऐक्सेस करने की अनुमति नहीं देते हैं, या होम स्क्रीन पर वापस जाएँ. ऐसा तब तक होगा, जब तक Home ऐप्लिकेशन अनुमति वाली सूची में शामिल नहीं हो जाता.
सिर्फ़ वे ऐप्लिकेशन जो सिस्टम, डिवाइस पॉलिसी कंट्रोलर (डीपीसी) की मदद से अनुमति वाली सूची में तब शामिल हो सकता है, जब सिस्टम लॉक टास्क मोड में हो. प्रणाली और खास ऐप्लिकेशन हैं, तो हालांकि, अनुमति वाली सूची में शामिल किए बिना, लॉक टास्क मोड में काम किया जा सकता है.
वैल्यू इनमें से कोई भी हो सकती है
R.attr.lockTaskMode
स्ट्रिंग की वैल्यू:वैल्यू ब्यौरा "normal"
डिफ़ॉल्ट वैल्यू. यह डिफ़ॉल्ट वैल्यू है. Tasks, लॉक टास्क मोड में लॉन्च नहीं होता, लेकिन ये काम कर सकते हैं कॉल करके अपॉइंटमेंट बुक किया जा सकता है startLockTask()
."never"
Tasks
lockTask
मोड में लॉन्च नहीं होता है. साथ ही, डिवाइस उपयोगकर्ता इन टास्क को हाल ही की स्क्रीन.ध्यान दें: यह मोड सिर्फ़ सिस्टम और कुछ खास ऐप्लिकेशन के लिए उपलब्ध है. इस वैल्यू वाले उन ऐप्लिकेशन को
normal
माना जाता है जो खास अधिकार नहीं रखते."if_whitelisted"
अगर DPC इस पैकेज को इसका इस्तेमाल करने की अनुमति देता है DevicePolicyManager.setLockTaskPackages()
तो यह मोडalways
के जैसा होगा. हालांकि, गतिविधि के लिए कॉल करना ज़रूरी हैstopLockTask()
में शामिल होने से पहले अगर वह आखिरी बार लॉक किया गया टास्क था, तो उसे पूरा किया जा सकेगा. अगर DPC इस पैकेज को अनुमति नहीं देता है, तो मोडnormal
के समान है."always"
इस गतिविधि पर रूट किए गए टास्क, हमेशा लॉक टास्क मोड में लॉन्च हो जाते हैं. अगर सिस्टम पहले से ही लॉक टास्क मोड पर, इस टास्क के लॉन्च होने पर, मौजूदा टास्क के ऊपर नया टास्क भी लॉन्च हो जाता है. इस मोड में लॉन्च किए गए टास्क, लॉक टास्क मोड से बाहर निकल सकते हैं
finish()
.ध्यान दें: यह मोड सिर्फ़ सिस्टम और कुछ खास ऐप्लिकेशन के लिए उपलब्ध है. इस वैल्यू वाले उन ऐप्लिकेशन को
normal
माना जाता है जो खास अधिकार नहीं रखते.यह एट्रिब्यूट, एपीआई लेवल 23 में पेश किया गया था.
android:maxRecents
- में इस गतिविधि में रूट किए गए टास्क की ज़्यादा से ज़्यादा संख्या हाल ही की स्क्रीन. एंट्री की यह संख्या पूरी होने पर, सिस्टम सबसे कम हाल ही में हाल ही की स्क्रीन से इस्तेमाल किए गए इंस्टेंस. मान्य वैल्यू, कम स्टोरेज वाले डिवाइसों पर 1 से 50 तक या 1 से 25 तक के पूर्णांक होते हैं. शून्य अमान्य है. डिफ़ॉल्ट तौर पर, यह वैल्यू 16 है.
android:maxAspectRatio
गतिविधि के साथ काम करने वाला ज़्यादा से ज़्यादा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात). अगर ऐप्लिकेशन चलता है ज़्यादा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) वाले डिवाइस पर, सिस्टम अपने-आप ऐप्लिकेशन को लेटरबॉक्स कर देता है, स्क्रीन के कुछ हिस्सों को इस्तेमाल नहीं करना चाहिए, ताकि ऐप्लिकेशन तय किए गए ज़्यादा से ज़्यादा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) में चल सके.
ज़्यादा से ज़्यादा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को डिवाइस के लंबे भागफल के दशमलव रूप में दिखाया जाता है डाइमेंशन को उसके छोटे डाइमेंशन से भाग दिया जाता है. उदाहरण के लिए, अगर आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) ज़्यादा से ज़्यादा 7:3 है, इस एट्रिब्यूट की वैल्यू 2.33 पर सेट करें.
पहने न जा सकने वाले डिवाइसों पर, इस एट्रिब्यूट की वैल्यू 1.33 या इससे ज़्यादा होनी चाहिए. पहने जाने वाले डिवाइसों पर, यह 1.0 या इससे ज़्यादा होना चाहिए. अगर ऐसा नहीं होता है, तो सिस्टम मान सेट करें.
ध्यान दें: इस एट्रिब्यूट को तब अनदेखा किया जाता है, जब गतिविधि में
resizeableActivity
'सही' पर सेट है. इसका मतलब है कि आपकी गतिविधि किसी भी साइज़ के साथ काम करता है.इस एट्रिब्यूट के बारे में ज़्यादा जानकारी के लिए, देखें ज़्यादा से ज़्यादा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बताएं.
android:multiprocess
- क्या गतिविधि के किसी इंस्टेंस को कॉम्पोनेंट की प्रोसेस में लॉन्च किया जा सकता है
शुरू हो गया. अगर ज़रूरी है, तो यह
"true"
है और अगर नहीं है, तो"false"
है. डिफ़ॉल्ट वैल्यू"false"
है.आम तौर पर, इस प्रक्रिया में किसी गतिविधि का एक नया इंस्टेंस लॉन्च किया जाता है तय किया गया है, इसलिए गतिविधि के सभी इंस्टेंस एक ही समय में प्रोसेस. हालांकि, अगर यह फ़्लैग
"true"
पर सेट है, तो गतिविधि कई प्रोसेस में चल सकती है, ताकि सिस्टम इंस्टेंस बना सके चाहे उनका इस्तेमाल कहीं भी किया जा रहा हो, बशर्ते अनुमतियां उन्हें इस्तेमाल करने दें—कुछ ऐसा जो जो उनके लिए ज़रूरी न हो. android:name
- गतिविधि को लागू करने वाली क्लास का नाम, जो इसकी एक सब-क्लास है
Activity
. इस एट्रिब्यूट की वैल्यू सामान्य तौर पर, पूरी तरह क्वालिफ़ाइड क्लास का नाम, जैसे कि"com.example.project.ExtracurricularActivity"
. हालांकि, शॉर्टहैंड की तरह अगर नाम का पहला वर्ण एक विराम चिह्न है, तो जैसे,".ExtracurricularActivity"
, यह namespace को इसमें बताया गया हैbuild.gradle
फ़ाइल.अपना ऐप्लिकेशन पब्लिश करने के बाद, यह काम न करें इस नाम को बदलो, जब तक कि आप
android:exported="false"
सेट न कर दें. कोई डिफ़ॉल्ट सेटिंग नहीं है. नाम बताना ज़रूरी है. android:noHistory
- गतिविधि स्टैक से गतिविधि को हटाया गया है या नहीं और
finish()
पर कॉल करके, कॉल किया गया वाला तरीका है, जब उपयोगकर्ता इससे दूर नेविगेट करता है और वह अब स्क्रीन पर दिखाई दे. पूरा होने पर यह"true"
बजेगा और अगर नहीं है, तो"false"
. डिफ़ॉल्ट वैल्यू"false"
है."true"
वैल्यू का मतलब है कि गतिविधि ऐतिहासिक ट्रेस. यह टास्क के गतिविधि स्टैक में नहीं रहती, ताकि उपयोगकर्ता उस पर वापस न जा सके. इस मामले में,onActivityResult()
को कभी कॉल नहीं किया जाता अगर आप इस गतिविधि से नतीजे पाने के लिए, दूसरी गतिविधि शुरू करें.यह एट्रिब्यूट, एपीआई लेवल 3 में शुरू किया गया था.
android:parentActivityName
- गतिविधि के लॉजिकल पैरंट का क्लास नाम. यहां दिया गया नाम क्लास से मेल खाना चाहिए
संबंधित
<activity>
एलिमेंट को दिया गया नामandroid:name
एट्रिब्यूट.सिस्टम इस एट्रिब्यूट को पढ़कर यह तय करता है कि कौनसी गतिविधि कब शुरू होगी जब उपयोगकर्ता ऐक्शन बार में अप ऐरो वाले बटन पर टैप करता है. सिस्टम इस जानकारी का इस्तेमाल इन कामों के लिए भी कर सकता है गतिविधियों के पिछले स्टैक को
TaskStackBuilder
की मदद से इकट्ठा करें.एपीआई लेवल 4 से 16 के बीच काम करने के लिए,
<meta-data>
एलिमेंट का इस्तेमाल करके पैरंट गतिविधि का एलान किया जा सकता है, जो"android.support.PARENT_ACTIVITY"
के लिए वैल्यू तय करता है:<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > <!-- Parent activity meta-data to support API level 4+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" /> </activity>
ऊपर नेविगेशन की सुविधा के लिए, पैरंट गतिविधि का एलान करने के बारे में ज़्यादा जानकारी के लिए, उपलब्ध कराना पढ़ें नेविगेशन.
यह एट्रिब्यूट, एपीआई लेवल 16 में पेश किया गया था.
android:persistableMode
यह तय करता है कि किसी गतिविधि के इंस्टेंस को कैसे सुरक्षित रखा जाएगा टास्क पर अपने-आप रीस्टार्ट हो जाता है.
अगर किसी टास्क की रूट ऐक्टिविटी, इस एट्रिब्यूट की वैल्यू को
persistRootOnly
है, तो सिर्फ़ रूट गतिविधि को सुरक्षित रखा जाता है. ऐसा न होने पर, उन गतिविधियों की संख्या भी बढ़ जाती है जो टास्क से बेहतर होती हैं बैक स्टैक उनकी जांच की जाती है; इनमें से ऐसी कोई भी गतिविधि जिसमें इस एट्रिब्यूट की वैल्यू सेट होती हैpersistAcrossReboots
सुरक्षित हैं.अगर आप इस एट्रिब्यूट का इस्तेमाल करते हैं, तो आपको इसकी वैल्यू फ़ॉलो किया जा रहा है:
वैल्यू ब्यौरा persistRootOnly
डिफ़ॉल्ट वैल्यू. सिस्टम के रीस्टार्ट होने पर, गतिविधि से जुड़ा टास्क होता है सुरक्षित रखा गया है, लेकिन सिर्फ़ रूट ऐक्टिविटी के लॉन्चिंग इंटेंट का इस्तेमाल किया जाता है.
जब आपका ऐप्लिकेशन लॉन्च करने का इंटेंट आपके ऐप्लिकेशन की रूट गतिविधि को लोड करता है, तो गतिविधि को
PersistableBundle
ऑब्जेक्ट नहीं मिला. इसलिए, आपकोonSaveInstanceState()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी डिवाइस पर अपने ऐप्लिकेशन की रूट गतिविधि की स्थिति को बनाए रखने के लिए रीस्टार्ट करें.ध्यान दें: इस एट्रिब्यूट की वैल्यू से आपके ऐप्लिकेशन के उपयोगकर्ता सिर्फ़ तब काम कर सकता है, जब वह आपके ऐप्लिकेशन की रूट गतिविधि पर सेट हो.
persistAcrossReboots
इस गतिविधि की स्थिति के साथ-साथ, हर एक की स्थिति को भी सेव रखा जाता है गतिविधि वापस जाएं स्टैक हो, जिसमें खुद का
persistableMode
एट्रिब्यूट इस पर सेट होpersistAcrossReboots
. अगर किसी गतिविधि में ये नहीं हैं एकpersistableMode
एट्रिब्यूट, जो इस पर सेट हैpersistAcrossReboots
या अगर इसेIntent.FLAG_ACTIVITY_NEW_DOCUMENT
फ़्लैग करें, फिर उस गतिविधि के साथ-साथ सभी गतिविधियां फ़्लैग करें. की ज़रूरी शर्तों को पूरा न करते हों, तो उन्हें सेव नहीं किया जाता.जब कोई इंटेंट ऐसी गतिविधि लोड करता है जिसका
persistableMode
आपके ऐप्लिकेशन में एट्रिब्यूटpersistAcrossReboots
पर सेट है, तो गतिविधि को इसके में एकPersistableBundle
ऑब्जेक्ट मिलता हैonCreate()
तरीका. इसलिए, अगर आपकोonSaveInstanceState()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है पुनः प्रारंभ होने पर ही गतिविधि की स्थिति को बनाए रखने के लिएpersistableMode
एट्रिब्यूट को इस पर सेट किया गया हैpersistAcrossReboots
.ध्यान दें: इस एट्रिब्यूट की वैल्यू से आपके ऐप्लिकेशन के व्यवहार, भले ही यह आपके ऐप्लिकेशन के रूट के अलावा किसी दूसरी गतिविधि पर सेट हो गतिविधि.
persistNever
गतिविधि की स्थिति को सुरक्षित नहीं रखा गया है.
ध्यान दें: इस एट्रिब्यूट की वैल्यू से आपके ऐप्लिकेशन के उपयोगकर्ता सिर्फ़ तब काम कर सकता है, जब वह आपके ऐप्लिकेशन की रूट गतिविधि पर सेट हो.
यह एट्रिब्यूट, एपीआई लेवल 21 में पेश किया गया था.
android:permission
- उस अनुमति का नाम जो क्लाइंट के पास गतिविधि को लॉन्च करने के लिए ज़रूरी है
या किसी इंटेंट पर जवाब देने के लिए कहें. अगर कॉलर
startActivity()
याstartActivityForResult()
को तय अनुमति नहीं दी गई है, तो इसके इंटेंट को गतिविधि में डिलीवर नहीं किया गया है.अगर यह एट्रिब्यूट सेट नहीं किया गया है, तो अनुमति
<application>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एलिमेंट काpermission
एट्रिब्यूट गतिविधि पर लागू होता है. अगर कोई भी एट्रिब्यूट सेट नहीं है, तो गतिविधि को अनुमति.अनुमतियों के बारे में ज़्यादा जानने के लिए, अनुमतियां सेक्शन पर जाएं और सुरक्षा से जुड़ी सलाह.
android:process
उस प्रोसेस का नाम जिसमें गतिविधि चलती है. आम तौर पर, ऐप्लिकेशन किसी डिफ़ॉल्ट प्रक्रिया नाम पर चलता है, जिसे ऐप्लिकेशन के लिए बनाया गया था, लेकिन आपको यह काम नहीं करना है इस एट्रिब्यूट का इस्तेमाल करना ज़रूरी है. हालांकि, अगर ज़रूरी हो, तो डिफ़ॉल्ट प्रोसेस को बदला जा सकता है इस एट्रिब्यूट का इस्तेमाल करके, अपने ऐप्लिकेशन के कॉम्पोनेंट को अलग-अलग कैटगरी में रखें कई प्रोसेस हैं.
अगर इस एट्रिब्यूट को असाइन किया गया नाम कोलन (
:
) से शुरू होता है, तो एक नया प्रक्रिया, ऐप्लिकेशन के लिए निजी होती है, जिसे ज़रूरत पड़ने पर बनाया जाता है और उस प्रक्रिया में गतिविधि चलती रहती है.अगर प्रोसेस का नाम अंग्रेज़ी के छोटे अक्षर से शुरू होता है, तो गतिविधि चलती है ग्लोबल प्रोसेस में जोड़ा जा सकता है, बशर्ते उसके पास ऐसा करने की अनुमति हो. इससे अलग-अलग ऐप्लिकेशन के कॉम्पोनेंट, एक प्रोसेस शेयर कर पाते हैं. इससे अलग-अलग ऐप्लिकेशन के कॉम्पोनेंट संसाधन का इस्तेमाल.
<application>
एलिमेंटprocess
एट्रिब्यूट की मदद से सभी कॉम्पोनेंट के लिए, डिफ़ॉल्ट प्रोसेस का अलग नाम सेट किया जा सकता है.android:relinquishTaskIdentity
क्या गतिविधि अपने टास्क आइडेंटिफ़ायर को, इससे ऊपर की गतिविधि के लिए छोड़ देती है टास्क स्टैक पर जाएं. जिस टास्क की रूट गतिविधि में यह एट्रिब्यूट
"true"
पर सेट है वह बेस को बदल देता है टास्क में अगली गतिविधि के लिएIntent
.अगर अगली गतिविधि में भी यह एट्रिब्यूट सेट है
"true"
से शुरू करती है, तो यह उसी में लॉन्च होने वाली किसी भी गतिविधि के लिए, आधारIntent
जनरेट करती है टास्क. यह गतिविधि हर गतिविधि के लिए तब तक जारी रहती है, जब तक कोई ऐसी गतिविधि नहीं मिलती जिसमें यह एट्रिब्यूट सेट हो"false"
तक. डिफ़ॉल्ट वैल्यू"false"
है."true"
पर सेट किया गया एट्रिब्यूट, गतिविधि के लिएActivityManager.TaskDescription
लेबल, रंग, और हाल ही की स्क्रीन में मौजूद आइकॉन.android:requireContentUriPermissionFromCaller
-
पास करते समय इस गतिविधि को लॉन्च करने के लिए ज़रूरी अनुमतियां बताता है कॉन्टेंट यूआरआई. डिफ़ॉल्ट वैल्यू
none
है, इसका मतलब है कि कोई सटीक वैल्यू नहीं दी गई है अनुमतियां ज़रूरी हैं. इस एट्रिब्यूट को सेट करने पर, गतिविधि पर पाबंदी लग जाती है उपयोगकर्ता की अनुमतियों के आधार पर बोला जाना. अगर शुरू करने वाले के पास ज़रूरी अनुमतियां नहीं हैं, तो गतिविधि की शुरुआत कोSecurityException
के ज़रिए अस्वीकार कर दिया जाएगा.ध्यान दें कि नीति उल्लंघन ठीक करने के तरीके, अंदर मौजूद कॉन्टेंट यूआरआई के लिए काम करते हैं
Intent.getData()
Intent.EXTRA_STREAM
, औरIntent.getClipData()
.'\\;' का इस्तेमाल करते हुए स्ट्रिंग मान हो सकता है '\\n' जैसे वर्णों से बचने के लिए या '\\uxxxx' यूनिकोड कैरेक्टर के लिए;
नीचे दिए गए कॉन्स्टेंट वैल्यू में से कोई एक होना चाहिए.
लगातार वैल्यू ब्यौरा कोई नहीं 0 डिफ़ॉल्ट रूप से, किसी खास अनुमति की ज़रूरत नहीं होती है. पढ़ा गया 1 पास किए गए कॉन्टेंट यूआरआई को पढ़ने का ऐक्सेस पाने के लिए, इनवॉइसर को लागू करता है. ReadAndWrite 4 यह लागू करने वाले से, अनुरोध करने वाले को पास किए गए कॉन्टेंट के यूआरआई को पढ़ने और उनमें बदलाव करने का ऐक्सेस मिलता है. ReadOrWrite 3 यह लागू करने वाले से, अनुरोध करने वाले को पास किए गए कॉन्टेंट के यूआरआई को पढ़ने या उनमें बदलाव करने का ऐक्सेस मिलता है. लिखें 2 यह लागू करने वाले से, अनुरोध करने वाले को पास किए गए कॉन्टेंट के यूआरआई में लिखने का ऐक्सेस मिलता है. android:resizeableActivity
-
इस नीति से पता चलता है कि ऐप्लिकेशन में मल्टी-विंडो मोड काम करता है या नहीं. आपने लोगों तक पहुंचाया मुफ़्त में इस एट्रिब्यूट को
<activity>
या<application>
एलिमेंट.अगर इस एट्रिब्यूट को
"true"
पर सेट किया जाता है, तो लोग यहां गतिविधि लॉन्च कर सकते हैं स्प्लिट स्क्रीन और फ़्री फ़ॉर्म मोड की सुविधा मिलती है. अगर आप इस एट्रिब्यूट को"false"
पर सेट करते हैं, तो को मल्टी-विंडो एनवायरमेंट के लिए न तो टेस्ट किया जा सकता है और न ही ऑप्टिमाइज़ किया जा सकता है. सिस्टम यह कर सकता है: अब भी गतिविधि को मल्टी-विंडो मोड में रखें और साथ में काम करने वाला मोड लागू करें.इस एट्रिब्यूट को
"false"
पर सेट करने से यह गारंटी नहीं मिलती कि मल्टी-विंडो मोड में होने वाले अन्य ऐप्लिकेशन, जो स्क्रीन पर दिखते हैं, जैसे कि पिक्चर में पिक्चर या ट्रैक कर सकते हैं. इसलिए, इस फ़्लैग को सेट करने का मतलब यह नहीं है कि आपका ऐप्लिकेशन के पास विशेष संसाधनों का ऐक्सेस होता है.अगर आपका ऐप्लिकेशन, एपीआई लेवल 24 या उसके बाद के लेवल को टारगेट करता है और आपने कोई वैल्यू नहीं डाली है इस एट्रिब्यूट के लिए, एट्रिब्यूट की वैल्यू डिफ़ॉल्ट तौर पर
"true"
पर सेट होती है.अगर आपका ऐप्लिकेशन, एपीआई लेवल 31 या उसके बाद के लेवल को टारगेट करता है, तो यह एट्रिब्यूट छोटे और बड़े लेवल पर अलग-अलग तरह से काम करता है स्क्रीन:
- बड़ी स्क्रीन (sw >= 600dp): सभी ऐप्लिकेशन पर मल्टी-विंडो मोड काम करता है. एट्रिब्यूट से पता चलता है कि
क्या किसी ऐप्लिकेशन का साइज़ बदला जा सकता है, न कि ऐप्लिकेशन में मल्टी-विंडो मोड की सुविधा काम करती है या नहीं. अगर आपने
resizeableActivity="false"
, ज़रूरत पड़ने पर ऐप्लिकेशन को कंपैटबिलिटी मोड में रखा जाता है डिसप्ले डाइमेंशन के मुताबिक होना चाहिए. - छोटी स्क्रीन (sw < 600dp): अगर
resizeableActivity="true"
और कम से कम गतिविधि की चौड़ाई और कम से कम ऊंचाई, ऐप्लिकेशन में मल्टी-विंडो की ज़रूरी शर्तों के मुताबिक होती है मल्टी-विंडो मोड की सुविधा भी काम करती है. अगरresizeableActivity="false"
, तो ऐप्लिकेशन यह काम नहीं करता मल्टी-विंडो मोड का भी इस्तेमाल किया जा सकता है, भले ही गतिविधि के लिए कम से कम चौड़ाई और ऊंचाई तय की गई हो.
ध्यान दें: डिवाइस बनाने वाली कंपनियां, एपीआई लेवल 31 को बदल सकती हैं व्यवहार.
यह एट्रिब्यूट, एपीआई लेवल 24 में जोड़ा गया था.
ध्यान दें: टास्क की रूट गतिविधि की वैल्यू सभी पर लागू होती है टास्क में लॉन्च की गईं अतिरिक्त गतिविधियां. इसका मतलब है कि अगर गतिविधि टास्क का साइज़ बदला जा सकता है. इसके बाद, सिस्टम बाकी सभी गतिविधियों को टास्क का साइज़ बदला जा सकता है. अगर रूट गतिविधि का साइज़ नहीं बदला जा सकता, तो टास्क में मौजूद गतिविधियों का साइज़ नहीं बदला जा सकता.
- बड़ी स्क्रीन (sw >= 600dp): सभी ऐप्लिकेशन पर मल्टी-विंडो मोड काम करता है. एट्रिब्यूट से पता चलता है कि
क्या किसी ऐप्लिकेशन का साइज़ बदला जा सकता है, न कि ऐप्लिकेशन में मल्टी-विंडो मोड की सुविधा काम करती है या नहीं. अगर आपने
android:screenOrientation
गतिविधि का अनुरोध किया गया ओरिएंटेशन.
जब कोई गतिविधि पूरी स्क्रीन पर भर जाती है, तो अनुरोध किया गया ओरिएंटेशन आपके लिए सुझाव के तौर पर काम करता है उस स्क्रीन का ओरिएंटेशन बदलकर, उसे अनुरोध की गई वैल्यू से मैच करना होगा. इसका नतीजा यह हो सकता है कि स्क्रीन की दिशा से अलग होना चाहिए, जिसमें उपयोगकर्ता को ऐप्लिकेशन का इस्तेमाल जारी रखने के लिए डिवाइस को घुमाना होगा. Android 12 (एपीआई लेवल) पर 31) और उसके बाद के वर्शन में, डिवाइस बनाने वाली कंपनियां अलग-अलग डिवाइस को कॉन्फ़िगर कर सकती हैं स्क्रीन (जैसे कि फ़ोल्ड किए जा सकने वाले टैबलेट की स्क्रीन) का इस्तेमाल करें. ऐसा करने के बजाय, गतिविधि को उपयोगकर्ता के पसंदीदा डिवाइस की दिशा में लेटरबॉक्स करने के लिए मजबूर कर सकता है. यह इससे गतिविधि का ओरिएंटेशन, अनुरोध किए गए ओरिएंटेशन से मेल खाता है. इसके लिए, उपयोगकर्ता को ऐसा करने की ज़रूरत नहीं होती उनके डिवाइस को भौतिक रूप से घुमाना.
मल्टी-विंडो मोड में, अनुरोध किया गया ओरिएंटेशन, पूरे पेज के लिए सुझाव के तौर पर काम नहीं करता स्क्रीन की दिशा. अगर गतिविधि लेटरबॉक्स किया गया, अनुरोध किया गया ओरिएंटेशन, गतिविधि पर लागू लेटरबॉक्स किए गए कॉन्टेंट पर असर डालता है.
वैल्यू, इनमें से कोई भी स्ट्रिंग हो सकती है:
"unspecified"
डिफ़ॉल्ट वैल्यू. सिस्टम स्क्रीन की दिशा चुनता है. वह नीति जो इस्तेमाल किया जाता है. इसलिए, खास कॉन्टेक्स्ट में चुने गए विकल्प अलग-अलग हो सकते हैं. एक डिवाइस से दूसरे डिवाइस पर. "behind"
स्क्रीन की दिशा वही होनी चाहिए जो गतिविधि के ठीक नीचे की ओर होती है गतिविधि स्टैक. "landscape"
लैंडस्केप ओरिएंटेशन (स्क्रीन की चौड़ाई उसकी ऊंचाई से ज़्यादा है). "portrait"
पोर्ट्रेट ओरिएंटेशन (स्क्रीन की लंबाई, स्क्रीन की चौड़ाई से ज़्यादा है). "reverseLandscape"
लैंडस्केप ओरिएंटेशन का सामान्य लैंडस्केप से उलट दिशा में होना. एपीआई लेवल 9 में जोड़ा गया. "reversePortrait"
पोर्ट्रेट ओरिएंटेशन में, सामान्य पोर्ट्रेट मोड से उलटी दिशा में फ़ोकस करें. एपीआई लेवल 9 में जोड़ा गया. "sensorLandscape"
लैंडस्केप ओरिएंटेशन हो सकता है, लेकिन डिवाइस के आधार पर यह सामान्य या उलटा लैंडस्केप हो सकता है सेंसर. सेंसर का इस्तेमाल तब भी किया जाता है, जब उपयोगकर्ता ने सेंसर पर आधारित रोटेशन को लॉक कर दिया हो. एपीआई लेवल 9 में जोड़ा गया. "sensorPortrait"
पोर्ट्रेट ओरिएंटेशन, लेकिन डिवाइस के हिसाब से यह सामान्य या रिवर्स पोर्ट्रेट हो सकता है सेंसर. सेंसर का इस्तेमाल तब भी किया जाता है, जब उपयोगकर्ता ने सेंसर पर आधारित रोटेशन को लॉक कर दिया हो. हालांकि, इसके आधार पर ऐसा हो सकता है कि डिवाइस कॉन्फ़िगरेशन के लिए, उलटा रोटेशन करने की अनुमति न हो. एपीआई लेवल 9 में जोड़ा गया. "userLandscape"
लैंडस्केप ओरिएंटेशन हो सकता है, लेकिन डिवाइस के आधार पर यह सामान्य या उलटा लैंडस्केप हो सकता है और उपयोगकर्ता की पसंद को पूरा कर सकता है. एपीआई लेवल 18 में जोड़ा गया. "userPortrait"
पोर्ट्रेट ओरिएंटेशन, लेकिन डिवाइस के हिसाब से यह सामान्य या रिवर्स पोर्ट्रेट हो सकता है और उपयोगकर्ता की पसंद को पूरा कर सकता है. हालांकि, डिवाइस कॉन्फ़िगरेशन के आधार पर, उलटा इसे बदला नहीं जा सकता. एपीआई लेवल 18 में जोड़ा गया. "sensor"
डिवाइस ओरिएंटेशन सेंसर, ओरिएंटेशन का पता लगाता है. इसका ओरिएंटेशन डिसप्ले, इस बात पर निर्भर करता है कि उपयोगकर्ता ने डिवाइस को किस तरह पकड़ रखा है. यह तब बदल जाता है, जब उपयोगकर्ता डिवाइस. हालांकि, कुछ डिवाइस डिफ़ॉल्ट रूप से सभी चार संभावित ओरिएंटेशन पर नहीं बदलते हैं. यहां की यात्रा पर हूं सभी चारों ओरिएंटेशन का इस्तेमाल करने के लिए, "fullSensor"
का इस्तेमाल करें. सेंसर का इस्तेमाल तब भी किया जाता है, जब उपयोगकर्ता सेंसर पर आधारित रोटेशन को लॉक किया गया है."fullSensor"
डिवाइस ओरिएंटेशन सेंसर, चार में से किसी भी ओरिएंटेशन का पता लगाता है. यह "sensor"
से मिलता-जुलता है. हालांकि, चार में से किसी भी स्क्रीन ओरिएंटेशन का इस्तेमाल किया जा सकता है इस बात पर ध्यान दिए बिना कि डिवाइस सामान्य रूप से किस डिवाइस पर काम करता है. उदाहरण के लिए, कुछ डिवाइस आम तौर पर उलटे क्रम में इस्तेमाल नहीं करते पोर्ट्रेट या रिवर्स लैंडस्केप, लेकिन इससे वे ओरिएंटेशन चालू हो जाते हैं. एपीआई लेवल 9 में जोड़ा गया."nosensor"
ओरिएंटेशन का पता लगाने के लिए, फ़िज़िकल ओरिएंटेशन सेंसर के रेफ़रंस का इस्तेमाल नहीं किया जाता. सेंसर को अनदेखा कर दिया जाता है, इसलिए डिस्प्ले इस आधार पर नहीं बदलता कि उपयोगकर्ता किस तरह से डिवाइस को मूव करता है. "user"
उपयोगकर्ता का मौजूदा पसंदीदा ओरिएंटेशन. "fullUser"
अगर उपयोगकर्ता ने सेंसर पर आधारित रोटेशन को लॉक कर दिया है, तो यह user
की तरह काम करेगा, नहीं तो यहfullSensor
की तरह काम करता है और इन चारों में से किसी भी एक विकल्प को चुनने की अनुमति देता है स्क्रीन ओरिएंटेशन. एपीआई लेवल 18 में जोड़ा गया."locked"
ओरिएंटेशन को इसके मौजूदा रोटेशन पर लॉक करता है, चाहे जो कुछ भी हो. एपीआई लेवल 18 में जोड़ा गया. ध्यान दें: लैंडस्केप या पोर्ट्रेट मोड में इस्तेमाल की जाने वाली किसी वैल्यू का एलान करने पर, इसे उस ओरिएंटेशन के लिए एक मुश्किल ज़रूरत माना जाता है जिसमें गतिविधि चलती है. आपने जिस वैल्यू की जानकारी दी है उससे Google Play जैसी सेवाओं के हिसाब से फ़िल्टर करने की सुविधा चालू होती है. इसलिए, आपका ऐप्लिकेशन यह सुविधा सिर्फ़ उन डिवाइसों के लिए उपलब्ध है जो आपकी गतिविधियों के लिए ज़रूरी ओरिएंटेशन के साथ काम करते हैं. इसके लिए उदाहरण के लिए, अगर आपने
"landscape"
,"reverseLandscape"
या"sensorLandscape"
, तो आपका ऐप्लिकेशन सिर्फ़ उन डिवाइसों के लिए उपलब्ध होगा जिन पर यह सुविधा काम करती है लैंडस्केप ओरिएंटेशन.साथ ही, यह भी बताना होगा कि आपके ऐप्लिकेशन के लिए
<uses-feature>
के साथ पोर्ट्रेट या लैंडस्केप ओरिएंटेशन की ज़रूरत है एलिमेंट, जैसे कि<uses-feature android:name="android.hardware.screen.portrait"/>
. इसे फ़िल्टर करने का तरीका बताया गया है को Google Play और इसके साथ काम करने वाली अन्य सेवाओं के ज़रिए उपलब्ध कराया जाता है. यह कंट्रोल करें कि जब डिवाइस सिर्फ़ कुछ ओरिएंटेशन (स्क्रीन की दिशा) पर काम करता हो, तो आपका ऐप्लिकेशन इंस्टॉल हो सकता है या नहीं.android:showForAllUsers
-
गतिविधि तब दिखेगी या नहीं, जब डिवाइस का मौजूदा उपयोगकर्ता यह हो जो गतिविधि लॉन्च करने वाले उपयोगकर्ता से अलग हो. आप इस एट्रिब्यूट को सेट कर सकते हैं लिटरल वैल्यू का इस्तेमाल करें, जैसे कि
"true"
या"false"
या एट्रिब्यूट को ऐसे संसाधन या थीम एट्रिब्यूट पर सेट किया जा सकता है जिसमें बूलियन वैल्यू.यह एट्रिब्यूट, एपीआई लेवल 23 में जोड़ा गया था.
android:stateNotNeeded
- गतिविधि को बंद किया जा सकता है और रीस्टार्ट किया जा सकता है या नहीं
उसे सेव किए बिना. अगर इसे रीस्टार्ट किया जा सकता है, तो यह
"true"
है पिछली स्थिति के रेफ़रंस के बिना और अगर पिछली स्थिति में है, तो"false"
राज्य का नाम डालना ज़रूरी है. डिफ़ॉल्ट वैल्यू"false"
है.आम तौर पर, संसाधनों को बचाने के लिए किसी गतिविधि को कुछ समय के लिए बंद करने से पहले,
onSaveInstanceState()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका को कॉल किया जाता है. यह तरीका, गतिविधि की मौजूदा स्थिति को इसमें सेव करता हैBundle
ऑब्जेक्ट, जिसे इसके बाद पास किया जाता है गतिविधि के दौरानonCreate()
रीस्टार्ट हो जाता है. अगर इस एट्रिब्यूट को"true"
पर सेट किया जाता है, तो ऐसा हो सकता है किonSaveInstanceState()
को कॉल न किया जाए औरonCreate()
की वैल्यू निकल गई होBundle
के बजायnull
, जैसा कि वह तब होता है जब गतिविधि पहली बार शुरू होती है."true"
सेटिंग का मतलब है कि गतिविधि को बिना भी रीस्टार्ट किया जा सकता है रिटेन की गई स्थिति. उदाहरण के लिए, वह गतिविधि जो इस सेटिंग का इस्तेमाल करके, होम स्क्रीन यह पक्का करती है कि अगर सेटिंग हटाई न जाए, तो किसी वजह से क्रैश हो जाता है. android:supportsPictureInPicture
-
तय करती है कि गतिविधि का समर्थन करती है या नहीं पिक्चर में पिक्चर डिसप्ले.
android:taskAffinity
वह टास्क जो गतिविधि की पसंद है. इसके साथ की जाने वाली गतिविधियां सैद्धांतिक तौर पर एक जैसी चीज़ें एक ही टास्क से जुड़ी होती हैं "ऐप्लिकेशन" उस पर भरोसा करते हैं. किसी टास्क की अफ़िनिटी उसकी मूल गतिविधि से तय होता है.
अफ़िनिटी ऑडियंस दो चीज़ों को तय करती है: वह टास्क जिसे गतिविधि की फिर से पैरंट किया जाता है पाने के लिए (
allowTaskReparenting
देखें एट्रिब्यूट) और वह टास्क जिसमें लॉन्च होने पर गतिविधि को शामिल किया जाता हैFLAG_ACTIVITY_NEW_TASK
के साथ फ़्लैग करें.डिफ़ॉल्ट रूप से, किसी ऐप्लिकेशन की सभी गतिविधियों की एक ही अफ़िनिटी होती है. आपने लोगों तक पहुंचाया मुफ़्त में इस एट्रिब्यूट को अलग-अलग ग्रुप में रखने के लिए सेट कर सकता है. साथ ही, गतिविधियों को ट्रैक किया जा सकता है. यहां की यात्रा पर हूं यह बताएं कि गतिविधि में किसी भी टास्क से कोई अफ़िनिटी नहीं है इसे खाली स्ट्रिंग में डालें.
अगर यह एट्रिब्यूट सेट नहीं है, तो गतिविधि, अफ़िनिटी सेट को इनहेरिट करती है आवेदन के लिए. ज़्यादा जानकारी के लिए,
<application>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एलिमेंट काtaskAffinity
एट्रिब्यूट की वैल्यू सबमिट करें. किसी ऐप्लिकेशन के लिए डिफ़ॉल्ट अफ़िनिटी का नाम यह है namespace,build.gradle
फ़ाइल.android:theme
- गतिविधि से जुड़ी पूरी थीम तय करने वाले किसी स्टाइल संसाधन का रेफ़रंस.
इससे गतिविधि का संदर्भ अपने-आप सेट हो जाएगा, ताकि
theme
और यह भी हो सकता है वजह "शुरू हो रही है" लॉन्च होने से पहले के ऐनिमेशन इस्तेमाल करके, बेहतर अनुभव के लिए मैच करती हो कि गतिविधि असल में कैसी दिखती है.अगर यह एट्रिब्यूट सेट नहीं है, तो गतिविधि, कुल मिलाकर,
<application>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एलिमेंट काtheme
एट्रिब्यूट की वैल्यू सबमिट करें. अगर यह एट्रिब्यूट भी सेट नहीं है, तो सिस्टम की डिफ़ॉल्ट थीम का इस्तेमाल किया जाता है. ज़्यादा के लिए जानकारी के लिए, स्टाइल और थीम देखें. android:uiOptions
किसी गतिविधि के यूज़र इंटरफ़ेस (यूआई) के लिए ज़्यादा विकल्प. इनमें से कोई एक वैल्यू होनी चाहिए.
वैल्यू ब्यौरा "none"
यूज़र इंटरफ़ेस (यूआई) का कोई और विकल्प नहीं है. यह डिफ़ॉल्ट विकल्प है. "splitActionBarWhenNarrow"
इस पर बार जोड़ता है ऐप्लिकेशन बार में ऐक्शन आइटम दिखाने के लिए, स्क्रीन के सबसे निचले हिस्से पर जाएं. इसे कार्रवाई बार, जब हॉरिज़ॉन्टल स्पेस के लिए सीमित होती है, जैसे कि हैंडसेट पर पोर्ट्रेट मोड में होने पर. छोटे साइज़ के बजाय स्क्रीन के सबसे ऊपर मौजूद ऐप्लिकेशन बार में दिखने वाले ऐक्शन आइटम की संख्या है, तो ऐप्लिकेशन बार इन्हें ऐक्शन आइटम के लिए, सबसे ऊपर मौजूद नेविगेशन सेक्शन और सबसे नीचे वाले बार में बांट दिया जाएगा. इसका मतलब यह है कि जगह न सिर्फ़ ऐक्शन आइटम के लिए, बल्कि नेविगेशन और टाइटल के लिए भी उपलब्ध है एलिमेंट शामिल हैं. मेन्यू आइटम, दो बार में बंटे नहीं होते. वे हमेशा दिखते हैं हैं बेमिसाल. ऐप्लिकेशन बार के बारे में ज़्यादा जानकारी के लिए, ऐप्लिकेशन बार जोड़ें लेख पढ़ें.
यह एट्रिब्यूट, एपीआई लेवल 14 में जोड़ा गया था.
android:windowSoftInputMode
- गतिविधि की मुख्य विंडो, उस विंडो से कैसे इंटरैक्ट करती है जिसमें यह शामिल है
कीबोर्ड पर क्लिक करते हैं. इस एट्रिब्यूट की सेटिंग से दो चीज़ों पर असर पड़ता है
चीज़ें:
- जब गतिविधि ध्यान देने की ज़रूरत नहीं है.
- गतिविधि की मुख्य विंडो यह है या नहीं सॉफ़्ट कीबोर्ड या इसके कॉन्टेंट के लिए जगह बनाने के लिए साइज़ को छोटा किया गया फ़ोकस करने के लिए पैन करें, ताकि जब विंडो का कोई हिस्सा कवर हो जाए, तब फ़ोकस किया जा सके सॉफ़्ट कीबोर्ड.
सेटिंग, नीचे दी गई टेबल में दी गई वैल्यू में से एक होनी चाहिए या एक
"state..."
मान और एक"adjust..."
का संयोजन वैल्यू. किसी भी ग्रुप में एक से ज़्यादा वैल्यू सेट करना, जैसे कि एक से ज़्यादा"state..."
मान, इसके नतीजे तय नहीं हैं. अलग-अलग वैल्यू को वर्टिकल बार (|
) से अलग किया जाता है, जैसा कि इस उदाहरण में दिखाया गया है:<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
यहां सेट की गई वैल्यू (
"stateUnspecified"
और"adjustUnspecified"
) थीम में सेट की गई वैल्यू को बदलती हैं.वैल्यू ब्यौरा "stateUnspecified"
सॉफ़्ट कीबोर्ड छिपा हुआ है या दिख रहा है तय नहीं है. सिस्टम, सही राज्य या थीम की सेटिंग पर निर्भर करता है. यह सॉफ़्ट कीबोर्ड के काम करने के तरीके की डिफ़ॉल्ट सेटिंग है.
"stateUnchanged"
सॉफ़्ट कीबोर्ड को पिछली बार उसी स्थिति में रखा जाता है दिखाई दे या छिपाया गया हो. "stateHidden"
जब उपयोगकर्ता कोई गतिविधि चुनता है, तो सॉफ़्ट कीबोर्ड छिप जाता है— जब उपयोगकर्ता खुद ही उस पेज पर जाता है जहां नहीं, बल्कि दूसरी गतिविधि को छोड़ने पर उसका बैक अप लेने के बजाय उसका बैक अप लेना न भूलें. "stateAlwaysHidden"
गतिविधि की मुख्य विंडो में, सॉफ़्ट कीबोर्ड हमेशा छिपा रहता है में इनपुट फ़ोकस मौजूद है. "stateVisible"
जब उपयोगकर्ता इस विकल्प को चुनता है, तो सॉफ़्ट कीबोर्ड दिखने लगता है गतिविधि—यानी, जब उपयोगकर्ता सकारात्मक तरीके से आगे की ओर नेविगेट करता है गतिविधि के लिए प्रेरित करने के बजाय उसका बैक अप लेते समय गतिविधि. "stateAlwaysVisible"
विंडो को इनपुट फ़ोकस मिलने पर, सॉफ़्ट कीबोर्ड दिखता है. "adjustUnspecified"
गतिविधि की मुख्य विंडो का साइज़ बदलता है या नहीं सॉफ़्ट कीबोर्ड या कॉन्टेंट के लिए जगह बनानी हो विंडो पैन के विकल्प की जानकारी नहीं दी गई है. इस हिसाब से, सिस्टम अपने-आप इनमें से किसी एक मोड को चुन लेता है इस बात पर ध्यान दिया जाता है कि क्या विंडो के कॉन्टेंट में कोई ऐसा लेआउट व्यू है जो कॉन्टेंट को स्क्रोल कर सकते हैं. यदि ऐसा कोई दृश्य है, तो विंडो साइज़ बदल लेता है, क्योंकि यह माना जाता है कि स्क्रोल करने से और बहुत छोटे क्षेत्र में दिखाई दे रहा हो. यह मुख्य विंडो के व्यवहार के लिए डिफ़ॉल्ट सेटिंग है.
"adjustResize"
गतिविधि की मुख्य विंडो का साइज़ हमेशा बदला जाता है, ताकि इवेंट के लिए जगह बनाई जा सके सॉफ़्ट कीबोर्ड को चालू कर दिया है. "adjustPan"
गतिविधि की मुख्य विंडो का साइज़ नहीं बदला गया, ताकि सॉफ़्ट विंडो के लिए जगह बनाई जा सके कीबोर्ड. इसके बजाय, विंडो का कॉन्टेंट अपने-आप पैन करें, ताकि मौजूदा फ़ोकस कभी कीबोर्ड से छिप न जाए, और उपयोगकर्ता हमेशा देख सकते हैं कि वे क्या लिख रहे हैं. आम तौर पर, यह संख्या कम होती है साइज़ बदलने के बजाय डिज़ाइन करना आसान होता है, क्योंकि उपयोगकर्ता को सॉफ़्ट कॉपी को बंद करना पड़ सकता है विंडो के धुंधला हिस्सों पर जाने और उनसे इंटरैक्ट करने के लिए कीबोर्ड. यह एट्रिब्यूट, एपीआई लेवल 3 में शुरू किया गया था.
- इसमें पेश किया गया:
- इन एट्रिब्यूट को छोड़कर, बाकी सभी एट्रिब्यूट के लिए एपीआई लेवल 1
noHistory
औरwindowSoftInputMode
को एपीआई में जोड़ा गया लेवल 3. - यह भी देखें:
<application>
<activity-alias>
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2024-08-22 (UTC) को अपडेट किया गया.
[null,null,["आखिरी बार 2024-08-22 (UTC) को अपडेट किया गया."],[],[]]