फ़ोरग्राउंड सेवाओं में किए गए बदलाव

फ़ोरग्राउंड सेवा के दस्तावेज़ में, Android की फ़ोरग्राउंड सेवाओं के मौजूदा व्यवहार के बारे में बताया गया है. दस्तावेज़ में, ज़्यादातर ऐप्लिकेशन के लिए सबसे सही तरीकों के बारे में बताया गया है. इससे कोई फ़र्क़ नहीं पड़ता कि वे Android के सबसे नए वर्शन को टारगेट करते हैं या नहीं.

इस पेज पर, फ़ोरग्राउंड सेवाओं में हाल ही में किए गए कुछ अहम बदलावों के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि Android प्लैटफ़ॉर्म के सबसे नए वर्शन को टारगेट न करने वाले ऐप्लिकेशन पर, इन बदलावों का क्या असर पड़ेगा. कई मामलों में, कम एपीआई लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, सबसे सही तरीके अपनाना ज़रूरी नहीं होता. हालांकि, ज़्यादा एपीआई लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, ये तरीके अपनाना ज़रूरी हो जाता है.

Android 16 (एपीआई लेवल 36)

यहां दिए गए बदलाव, Android 16 या इसके बाद के वर्शन पर काम करने वाले ऐप्लिकेशन पर लागू होते हैं. इससे कोई फ़र्क़ नहीं पड़ता कि वे किस एपीआई लेवल को टारगेट करते हैं:

  • फ़ोरग्राउंड सेवा से शुरू किए गए बैकग्राउंड जॉब को अब अपने रनटाइम कोटा का पालन करना होगा. इसमें JobScheduler की मदद से सीधे तौर पर शेड्यूल किए गए जॉब शामिल हैं. साथ ही, WorkManager या DownloadManager जैसी अन्य लाइब्रेरी से बनाए गए जॉब भी शामिल हैं.

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

Android 15 (एपीआई लेवल 35)

एपीआई लेवल 35 या इसके बाद के लेवल को टारगेट करने वाले ऐप्लिकेशन पर ये ज़रूरी शर्तें लागू होती हैं:

Android 14 (एपीआई लेवल 34)

एपीआई लेवल 34 या इसके बाद के लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, ये ज़रूरी शर्तें लागू होती हैं:

  • आपको सभी फ़ोरग्राउंड सेवाओं का एलान उनके टाइप के साथ करना होगा.
  • ऐप्लिकेशन को फ़ोरग्राउंड सेवा के काम के हिसाब से, सही अनुमति का अनुरोध करना चाहिए. फ़ोरग्राउंड सेवा के हर टाइप के लिए, अनुमति का एक टाइप होता है. उदाहरण के लिए, अगर कोई ऐप्लिकेशन कैमरे का इस्तेमाल करने वाली फ़ोरग्राउंड सेवा लॉन्च करता है, तो आपको FOREGROUND_SERVICE और FOREGROUND_SERVICE_CAMERA, दोनों अनुमतियों का अनुरोध करना होगा. अगर कोई ऐप्लिकेशन एपीआई लेवल 34 या इसके बाद के वर्शन को टारगेट करता है और ज़रूरी अनुमति का अनुरोध नहीं करता है, तो सिस्टम SecurityException दिखाता है.

Android 12 (एपीआई लेवल 31)

एपीआई लेवल 31 या इसके बाद के लेवल को टारगेट करने वाले ऐप्लिकेशन पर ये ज़रूरी शर्तें लागू होती हैं:

Android 11 (एपीआई लेवल 30)

एपीआई लेवल 30 या इसके बाद के लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, ये ज़रूरी शर्तें लागू होती हैं:

  • अगर किसी ऐप्लिकेशन की फ़ोरग्राउंड सेवाएं, कैमरे या माइक्रोफ़ोन का इस्तेमाल करती हैं, तो ऐप्लिकेशन को सेवा का एलान करना होगा. इसके लिए, उसे सेवा के टाइप के तौर पर, camera या microphone का इस्तेमाल करना होगा.

Android 10 (एपीआई लेवल 29)

एपीआई लेवल 29 या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन पर ये ज़रूरी शर्तें लागू होती हैं:

  • अगर किसी ऐप्लिकेशन की फ़ोरग्राउंड सेवाएं, जगह की जानकारी का इस्तेमाल करती हैं, तो ऐप्लिकेशन को location सेवा टाइप के साथ सेवा का एलान करना होगा.

Android 9 (एपीआई लेवल 28)

Android 9 में, FOREGROUND_SERVICE अनुमति को शामिल किया गया है. Android 9 पर चलने वाले जिन ऐप्लिकेशन में फ़ोरग्राउंड सेवाओं का इस्तेमाल किया जाता है उनके पास यह अनुमति होनी चाहिए.

अगर एपीआई लेवल 28 या इसके बाद के लेवल को टारगेट करने वाला कोई ऐप्लिकेशन, FOREGROUND_SERVICE अनुमति का अनुरोध किए बिना फ़ोरग्राउंड सेवा बनाने की कोशिश करता है, तो सिस्टम SecurityException दिखाता है.