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

फ़ोरग्राउंड सेवा के दस्तावेज़ में, 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 दिखाता है.