- सिंटैक्स:
<service android:description="string resource" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:foregroundServiceType=["camera" | "connectedDevice" | "dataSync" | "health" | "location" | "mediaPlayback" | "mediaProjection" | "microphone" | "phoneCall" | "remoteMessaging" | "shortService" | "specialUse" | "systemExempted"] android:icon="drawable resource" android:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" android:stopWithTask=["true" | "false"]> ... </service>
- इसमें शामिल:
<application>- इसमें ये एलिमेंट शामिल हो सकते हैं:
<intent-filter><meta-data><property>- विवरण:
- यह किसी सेवा,
Serviceसबक्लास को ऐप्लिकेशन के कॉम्पोनेंट के तौर पर दिखाता है. ऐक्टिविटी के उलट, सेवाओं में विज़ुअल यूज़र इंटरफ़ेस नहीं होता. इनका इस्तेमाल, बैकग्राउंड में लंबे समय तक चलने वाली कार्रवाइयों या बेहतर कम्यूनिकेशन एपीआई को लागू करने के लिए किया जाता है. इन्हें दूसरे ऐप्लिकेशन कॉल कर सकते हैं.सभी सेवाओं को मेनिफ़ेस्ट फ़ाइल में
<service>एलिमेंट से दिखाया जाना चाहिए. जिन सेवाओं को मेनिफ़ेस्ट फ़ाइल में नहीं दिखाया जाता उन्हें सिस्टम नहीं देखता और वे कभी नहीं चलतीं.ध्यान दें: Android 8.0 (एपीआई लेवल 26) और उसके बाद के वर्शन पर, सिस्टम इस बात पर पाबंदी लगाता है कि आपका ऐप्लिकेशन बैकग्राउंड में चलने के दौरान क्या-क्या कर सकता है. ज़्यादा जानकारी के लिए, बैकग्राउंड में ऐक्सेस की पाबंदियों और बैकग्राउंड में जगह की जानकारी ऐक्सेस करने की पाबंदियों के बारे में बताने वाली गाइड देखें.
- एट्रिब्यूट:
android:description- यह स्ट्रिंग, सेवा के बारे में ऐसी जानकारी देती है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. इस स्ट्रिंग को स्ट्रिंग रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है, ताकि इसे यूज़र इंटरफ़ेस में मौजूद अन्य स्ट्रिंग की तरह स्थानीय भाषा में बदला जा सके.
android:directBootAwareयह एट्रिब्यूट बताता है कि सेवा डायरेक्ट-बूट अवेयर है या नहीं. इसका मतलब है कि यह सेवा, उपयोगकर्ता के डिवाइस अनलॉक करने से पहले चल सकती है या नहीं.
ध्यान दें: डायरेक्ट बूटके दौरान, आपके ऐप्लिकेशन में मौजूद कोई सेवा सिर्फ़ डिवाइस से सुरक्षित स्टोरेज में सेव किए गए डेटा को ऐक्सेस कर सकती है.
डिफ़ॉल्ट वैल्यू
"false"होती है.android:enabled- यह एट्रिब्यूट बताता है कि सिस्टम, सेवा को इंस्टैंशिएट कर सकता है या नहीं. अगर सिस्टम, सेवा को इंस्टैंशिएट कर सकता है, तो इसकी वैल्यू
"true"होती है. अगर नहीं, तो"false"होती है. डिफ़ॉल्ट वैल्यू"true"होती है.The
<application>element has its ownenabledattribute that applies to all application components, including services. सेवा को चालू करने के लिए,<application>और<service>दोनों एट्रिब्यूट की वैल्यू"true"होनी चाहिए. डिफ़ॉल्ट तौर पर, इन दोनों एट्रिब्यूट की वैल्यू होती है. अगर इनमें से किसी भी एट्रिब्यूट की वैल्यू"false"है, तो सेवा बंद हो जाती है और उसे इंस्टैंशिएट नहीं किया जा सकता. android:exported- यह एट्रिब्यूट बताता है कि अन्य ऐप्लिकेशन के कॉम्पोनेंट, सेवा को शुरू कर सकते हैं या उससे इंटरैक्ट कर सकते हैं या नहीं. अगर वे ऐसा कर सकते हैं, तो इसकी वैल्यू
"true"होती है. अगर नहीं, तो"false"होती है. जब वैल्यू"false"होती है, तो सिर्फ़ एक ही ऐप्लिकेशन के कॉम्पोनेंट या एक ही उपयोगकर्ता आईडी वाले ऐप्लिकेशन, सेवा को शुरू कर सकते हैं या उससे बाइंड हो सकते हैं.डिफ़ॉल्ट वैल्यू इस बात पर निर्भर करती है कि सेवा में इंटेंट फ़िल्टर शामिल हैं या नहीं. किसी भी फ़िल्टर के न होने का मतलब है कि सेवा को सिर्फ़ उसकी क्लास का सटीक नाम डालकर शुरू किया जा सकता है. इसका मतलब है कि सेवा का इस्तेमाल सिर्फ़ ऐप्लिकेशन के अंदर किया जा सकता है, क्योंकि अन्य ऐप्लिकेशन को क्लास के नाम के बारे में जानकारी नहीं होती. इसलिए, इस मामले में डिफ़ॉल्ट वैल्यू
"false"होती है. वहीं, कम से कम एक फ़िल्टर के मौजूद होने का मतलब है कि सेवा का इस्तेमाल बाहर भी किया जा सकता है. इसलिए, डिफ़ॉल्ट वैल्यू"true"होती है.किसी सेवा को अन्य ऐप्लिकेशन के लिए उपलब्ध होने से रोकने का यह इकलौता तरीका नहीं है. सेवा से इंटरैक्ट करने वाली बाहरी इकाइयों को सीमित करने के लिए, अनुमति का इस्तेमाल भी किया जा सकता है.
permissionएट्रिब्यूट देखें. android:foregroundServiceTypeयह एट्रिब्यूट बताता है कि सेवा, फ़ोरग्राउंड सेवा है और यह इस्तेमाल के किसी खास मामले की ज़रूरी शर्तें पूरी करती है. उदाहरण के लिए, फ़ोरग्राउंड सेवा का टाइप
"location"यह बताता है कि कोई ऐप्लिकेशन, डिवाइस की मौजूदा जगह की जानकारी हासिल कर रहा है. आम तौर पर, ऐसा डिवाइस की जगह से जुड़ी उपयोगकर्ता की शुरू की गई कार्रवाई को जारी रखने के लिए किया जाता है.किसी सेवा को फ़ोरग्राउंड सेवा के एक से ज़्यादा टाइप असाइन किए जा सकते हैं.
android:icon- यह एट्रिब्यूट, सेवा को दिखाने वाले आइकॉन के बारे में बताता है. इस एट्रिब्यूट को, ड्रॉएबल रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है. इसमें इमेज की परिभाषा शामिल होती है.
अगर इसे सेट नहीं किया जाता है, तो पूरे ऐप्लिकेशन के लिए तय किया गया आइकॉन इस्तेमाल किया जाता है.
<application>एलिमेंट काiconएट्रिब्यूट देखें.सेवा का आइकॉन, चाहे इसे यहां सेट किया गया हो या
<application>एलिमेंट से, सेवा के सभी इंटेंट फ़िल्टर के लिए डिफ़ॉल्ट आइकॉन भी होता है.<intent-filter>एलिमेंट काiconएट्रिब्यूट देखें. android:isolatedProcess- अगर इसे
"true"पर सेट किया जाता है, तो यह सेवा एक खास प्रोसेस के तहत चलती है. यह प्रोसेस, सिस्टम के बाकी हिस्सों से अलग होती है और इसके पास अपनी कोई अनुमति नहीं होती. इसके साथ सिर्फ़ सर्विस एपीआई के ज़रिए कम्यूनिकेट किया जा सकता है. इसके लिए, बाइंडिंग और शुरू करने की प्रोसेस का इस्तेमाल किया जाता है. android:label- यह स्ट्रिंग, सेवा के लिए ऐसा नाम बताती है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है.
अगर इस एट्रिब्यूट को सेट नहीं किया जाता है, तो पूरे ऐप्लिकेशन के लिए सेट किया गया लेबल इस्तेमाल किया जाता है.
<application>एलिमेंट काlabelएट्रिब्यूट देखें.सेवा का लेबल, चाहे इसे यहां सेट किया गया हो या
<application>एलिमेंट से, सेवा के सभी इंटेंट फ़िल्टर के लिए डिफ़ॉल्ट लेबल भी होता है.<intent-filter>एलिमेंट काlabelएट्रिब्यूट देखें.इस स्ट्रिंग को स्ट्रिंग रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है, ताकि इसे यूज़र इंटरफ़ेस में मौजूद अन्य स्ट्रिंग की तरह स्थानीय भाषा में बदला जा सके. हालांकि, ऐप्लिकेशन डेवलप करते समय, इसे रॉ स्ट्रिंग के तौर पर भी सेट किया जा सकता है.
android:name- यह एट्रिब्यूट,
Serviceसब-क्लास के नाम के बारे में बताता है. यह सब-क्लास, सेवा को लागू करता है. यह पूरी तरह से क्वालिफ़ाइड क्लास का नाम होता है. जैसे,"com.example.project.RoomService". हालांकि, शॉर्टहैंड के तौर पर, अगर नाम का पहला वर्ण पीरियड है, जैसे कि".RoomService", तो इसे पैकेज के नाम में जोड़ा जाता है, जैसा कि<manifest>एलिमेंट में तय किया गया है.ऐप्लिकेशन पब्लिश करने के बाद, इस नाम को न बदलें. हालांकि, अगर आपने
android:exported="false"सेट किया है, तो नाम बदला जा सकता है.इसकी कोई डिफ़ॉल्ट वैल्यू नहीं होती. नाम तय करना ज़रूरी है.
android:permission- यह एट्रिब्यूट, उस अनुमति के नाम के बारे में बताता है जो किसी इकाई को सेवा शुरू करने या उससे बाइंड होने के लिए चाहिए. अगर
startService(),bindService()याstopService()को कॉल करने वाले व्यक्ति को यह अनुमति नहीं दी जाती है, तो यह तरीका काम नहीं करता औरIntentऑब्जेक्ट, सेवा को नहीं भेजा जाता.अगर इस एट्रिब्यूट को सेट नहीं किया जाता है, तो सेवा पर
<application>एलिमेंट केpermissionएट्रिब्यूट से सेट की गई अनुमति लागू होती है. अगर दोनों एट्रिब्यूट सेट नहीं किए जाते हैं, तो सेवा को किसी अनुमति से सुरक्षित नहीं किया जाता.अनुमतियों के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन मेनिफ़ेस्ट की खास जानकारी में अनुमतियां सेक्शन और सुरक्षा से जुड़ी गाइडलाइन देखें.
android:process- यह एट्रिब्यूट, उस प्रोसेस के नाम के बारे में बताता है जिसमें सेवा चलती है. आम तौर पर, किसी ऐप्लिकेशन के सभी कॉम्पोनेंट, ऐप्लिकेशन के लिए बनाई गई डिफ़ॉल्ट प्रोसेस में चलते हैं. इसका नाम, ऐप्लिकेशन के पैकेज के नाम जैसा ही होता है. The
<application>एलिमेंट काprocessएट्रिब्यूट, सभी कॉम्पोनेंट के लिए अलग डिफ़ॉल्ट सेट कर सकता है. हालांकि, कोई कॉम्पोनेंट अपनेprocessएट्रिब्यूट से डिफ़ॉल्ट को बदल सकता है. इससे आपके ऐप्लिकेशन को एक से ज़्यादा प्रोसेस में फैलाया जा सकता है.अगर इस एट्रिब्यूट को असाइन किया गया नाम, कोलन (
:) से शुरू होता है, तो ऐप्लिकेशन के लिए एक नई निजी प्रोसेस बनाई जाती है. सेवा, इस प्रोसेस में चलती है.अगर प्रोसेस का नाम, छोटे अक्षर से शुरू होता है, तो सेवा उस नाम की ग्लोबल प्रोसेस में चलती है. हालांकि, इसके लिए सेवा के पास अनुमति होनी चाहिए. इससे अलग-अलग ऐप्लिकेशन में मौजूद कॉम्पोनेंट, एक प्रोसेस शेयर कर सकते हैं. इससे रिसॉर्स का इस्तेमाल कम होता है.
android:stopWithTask- अगर इसे
"true"पर सेट किया जाता है, तो उपयोगकर्ता के किसी ऐसे टास्क को हटाने पर सिस्टम, सेवा को अपने-आप बंद कर देता है जो ऐप्लिकेशन की किसी ऐक्टिविटी से जुड़ा है. डिफ़ॉल्ट वैल्यू"false"होती है.
- इन्हें भी देखें:
<application><activity>- पहली बार इसमें दिखाया गया:
- एपीआई लेवल 1
<सेवा>
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2026-07-01 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2026-07-01 (UTC) को अपडेट किया गया."],[],[]]