<सेवा>

सिंटैक्स:
<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" >
    ...
</service>
इसमें शामिल है:
<application>
इसमें ये शामिल हो सकते हैं:
<intent-filter>
<meta-data>
विवरण:
एक सेवा यानी Service सब-क्लास को बताता है कॉम्पोनेंट की जानकारी शामिल होती है. गतिविधियों के उलट, सेवाओं में विज़ुअल यूज़र इंटरफ़ेस. इनका इस्तेमाल, लंबे समय तक चलने वाले बैकग्राउंड को लागू करने के लिए किया जाता है ऑपरेशन या रिच कम्यूनिकेशन एपीआई, जिसे दूसरे उपयोगकर्ता का इस्तेमाल करें.

सभी सेवाएं इसमें <service> एलिमेंट के ज़रिए दिखाई जानी चाहिए मेनिफ़ेस्ट फ़ाइल में सेव किया जाएगा. जिन जगहों के बारे में एलान नहीं किया गया है उन्हें नहीं देखा गया है और ये कभी काम नहीं करते.

ध्यान दें: Android 8.0 (एपीआई लेवल 26) और उसके बाद के वर्शन पर, सिस्टम की सीमाएं तय होती हैं आपका ऐप्लिकेशन बैकग्राउंड में चलने के दौरान क्या-क्या कर सकता है. इसके लिए ज़्यादा जानकारी के लिए, वे गाइड देखें जो बैकग्राउंड में वीडियो चलाने की सीमाएं और बैकग्राउंड में जगह की जानकारी ऐक्सेस करने का अनुरोध करना सीमाएं होती हैं.

विशेषताएं:
android:description
इस स्ट्रिंग में दी गई सेवा के बारे में ऐसी जानकारी होती है जिसे उपयोगकर्ता आसानी से पढ़ सकता है. ब्यौरा इस तरह सेट किया गया है एक स्ट्रिंग संसाधन का संदर्भ दे, ताकि उसे अन्य स्ट्रिंग की तरह स्थानीय भाषा में बदला जा सके के तौर पर उपलब्ध कराया है.
android:directBootAware

क्या सेवा Direct-Boot जानकारी है, यानी कि क्या यह उपयोगकर्ता के डिवाइस को अनलॉक करने से पहले काम करता है.

ध्यान दें: इस दौरान Direct बूट की सेवा, आपकी ऐप्लिकेशन सिर्फ़ वही डेटा ऐक्सेस कर सकती है जो डिवाइस से सुरक्षित स्टोरेज.

डिफ़ॉल्ट वैल्यू "false" है.

android:enabled
सिस्टम से सेवा को इंस्टैंशिएट किया जा सकता है या नहीं. यह समय है अगर हो सकता है, तो "true" और अगर नहीं है, तो "false". डिफ़ॉल्ट वैल्यू "true" है.

<application> एलिमेंट की अपनी खासियत होती है सभी पर लागू होने वाला enabled एट्रिब्यूट ऐप्लिकेशन के कॉम्पोनेंट शामिल हैं. कॉन्टेंट बनाने <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" पर सेट की जाती है, तो यह सेवा एक खास प्रोसेस के तहत काम करती है. यह प्रोसेस, की अनुमति नहीं है और उसके पास इसकी खुद की अनुमति नहीं है. इसके साथ एकमात्र बातचीत Service API के ज़रिए की जाती है, जिसमें बाइंडिंग और शुरू होने वाला है.
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
उस प्रोसेस का नाम जहां सेवा चलती है. आम तौर पर, किसी ऐप्लिकेशन के सभी कॉम्पोनेंट, का इस्तेमाल करें. इसका नाम ऐप्लिकेशन पैकेज के नाम के समान है. कॉन्टेंट बनाने <application> एलिमेंट process एट्रिब्यूट की मदद से, डिफ़ॉल्ट तौर पर सेट हो जाता है. हालांकि, कोई कॉम्पोनेंट डिफ़ॉल्ट को ओवरराइड कर सकता है इसकी process एट्रिब्यूट की मदद से, कई प्रोसेस में लागू होता है.

अगर इस एट्रिब्यूट को असाइन किया गया नाम कोलन (:) से शुरू होता है, तो एक नया प्रक्रिया, ऐप्लिकेशन के लिए निजी होती है, जिसे ज़रूरत पड़ने पर बनाया जाता है और तो ठीक उसी तरह से काम करती हो.

अगर प्रोसेस का नाम अंग्रेज़ी के छोटे अक्षर से शुरू होता है, तो सेवा ग्लोबल प्रोसेस में जोड़ा जा सकता है, बशर्ते उसके पास ऐसा करने की अनुमति हो. इससे अलग-अलग ऐप्लिकेशन के कॉम्पोनेंट, एक प्रोसेस शेयर कर पाते हैं. इससे अलग-अलग ऐप्लिकेशन के कॉम्पोनेंट संसाधन का इस्तेमाल.

यह भी देखें:
<application>
<activity>
इसमें पेश किया गया:
एपीआई लेवल 1