फ़ोरग्राउंड सेवा के दस्तावेज़ में, Android फ़ोरग्राउंड सेवाओं के मौजूदा व्यवहार के बारे में बताया गया है. इस दस्तावेज़ में, ज़्यादातर ऐप्लिकेशन के लिए सबसे सही तरीकों के बारे में बताया गया है. भले ही, वे Android के सबसे नए वर्शन को टारगेट करते हों या नहीं.
इस पेज पर, फ़ोरग्राउंड सेवाओं में हुए कुछ सबसे नए अहम बदलावों के बारे में बताया गया है. साथ ही, उन ऐप्लिकेशन पर पड़ने वाले असर के बारे में भी बताया गया है जो Android प्लैटफ़ॉर्म के सबसे नए वर्शन को टारगेट नहीं कर रहे हैं. कई मामलों में, एपीआई के निचले लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, सबसे सही तरीके इस्तेमाल करना ज़रूरी नहीं होता. हालांकि, एपीआई के ऊंचे लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, ये सबसे सही तरीके ज़रूरी हो जाते हैं.
Android 9 (एपीआई लेवल 28)
Android 9 में, FOREGROUND_SERVICE
अनुमति की सुविधा जोड़ी गई है. Android 9 पर चलने वाले उन ऐप्लिकेशन के पास यह अनुमति होनी चाहिए जो फ़ोरग्राउंड सेवाओं का इस्तेमाल करते हैं.
अगर एपीआई लेवल 28 या उसके बाद के वर्शन को टारगेट करने वाला कोई ऐप्लिकेशन, FOREGROUND_SERVICE
अनुमति के लिए अनुरोध किए बिना फ़ोरग्राउंड सेवा बनाने की कोशिश करता है, तो सिस्टम SecurityException
दिखाता है.
Android 10 (एपीआई लेवल 29)
एपीआई लेवल 29 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, ये ज़रूरी शर्तें लागू होती हैं:
- अगर किसी ऐप्लिकेशन की फ़ोरग्राउंड सेवाएं, जगह की जानकारी का इस्तेमाल करती हैं, तो ऐप्लिकेशन को
location
सेवा टाइप के साथ सेवा का एलान करना होगा.
Android 11 (एपीआई लेवल 30)
ये ज़रूरी शर्तें, एपीआई लेवल 30 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन पर लागू होती हैं:
- अगर किसी ऐप्लिकेशन की फ़ोरग्राउंड सेवाएं कैमरे या माइक्रोफ़ोन का इस्तेमाल करती हैं, तो ऐप्लिकेशन को
camera
याmicrophone
के तौर पर सेवा के टाइप के साथ, सेवा का एलान करना होगा.
Android 12 (एपीआई लेवल 31)
एपीआई लेवल 31 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, ये ज़रूरी शर्तें लागू होती हैं:
- ऐप्लिकेशन के बैकग्राउंड में होने पर, उसे फ़ोरग्राउंड सेवाएं लॉन्च करने की अनुमति नहीं होती. हालांकि, कुछ खास मामलों में ऐसा किया जा सकता है. ज़्यादा जानकारी और इस नियम के अपवादों के बारे में जानने के लिए, बैकग्राउंड से फ़ोरग्राउंड सेवा शुरू करने पर लगी पाबंदियां देखें.
Android 14 (एपीआई लेवल 34)
एपीआई लेवल 34 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, ये ज़रूरी शर्तें लागू होती हैं:
- आपको सभी फ़ोरग्राउंड सेवाओं के बारे में एलान करना होगा. साथ ही, आपको सेवा के टाइप के बारे में भी बताना होगा.
- ऐप्लिकेशन को उस काम के लिए, सही अनुमति का अनुरोध करना होगा जो फ़ोरग्राउंड सेवा करेगी. हर फ़ोरग्राउंड सेवा के टाइप के लिए, एक तरह की अनुमति होती है. उदाहरण के लिए, अगर कोई ऐप्लिकेशन कैमरे का इस्तेमाल करने वाली फ़ोरग्राउंड सेवा लॉन्च करता है, तो आपको
FOREGROUND_SERVICE
औरFOREGROUND_SERVICE_CAMERA
, दोनों अनुमतियों का अनुरोध करना होगा. अगर कोई ऐप्लिकेशन, एपीआई लेवल 34 या उसके बाद के वर्शन को टारगेट करता है और वह सही अनुमति का अनुरोध नहीं करता है, तो सिस्टमSecurityException
दिखाता है.
Android 15 (एपीआई लेवल 35)
ये ज़रूरी शर्तें, एपीआई लेवल 35 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन पर लागू होती हैं:
dataSync
फ़ोरग्राउंड सेवा कितनी देर तक चल सकती है, इस पर नई पाबंदियां हैं. इन पाबंदियों के बारे में फ़ोरग्राउंड सेवा के टाइम आउट के व्यवहार में बताया गया है. Android 15 में,mediaProcessing
फ़ोरग्राउंड सेवा के टाइप पर भी ऐसी ही पाबंदियां लागू होती हैं.BOOT_COMPLETED
फ़ोरग्राउंड सेवाओं को अब कुछ फ़ोरग्राउंड सेवाएं लॉन्च करने की अनुमति नहीं है.SYSTEM_ALERT_WINDOW
अनुमति वाले ऐप्लिकेशन, बैकग्राउंड से फ़ोरग्राउंड सेवाएं सिर्फ़ तब लॉन्च कर सकते हैं, जब उनके पास फ़िलहाल दिखने वाली ओवरले विंडो हो. इसके अलावा, बैकग्राउंड से शुरू करने से जुड़ी पाबंदियों से छूट पाने की किसी अन्य शर्त को पूरा करने पर भी ऐसा किया जा सकता है. पहले, इन ऐप्लिकेशन के लिए छूट की शर्तें ज़्यादा थीं.