تغييرات على الخدمات التي تعمل في المقدّمة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
توضّح مستندات الخدمات التي تعمل في المقدّمة السلوك الحالي لهذه الخدمات في Android. تقدّم المستندات إرشادات حول أفضل الممارسات لمعظم التطبيقات، سواء كانت تستهدف أحدث إصدار من Android أم لا.
توضّح هذه الصفحة بعض التغييرات المهمة التي تم إجراؤها مؤخرًا على الخدمات التي تعمل في المقدّمة، وتأثيراتها على التطبيقات التي لا تستهدف أحدث إصدار من نظام Android الأساسي. في كثير من الحالات، تصبح أفضل الممارسات التي كانت اختيارية للتطبيقات التي تستهدف مستويات أقل من واجهة برمجة التطبيقات إلزامية للتطبيقات التي تستهدف مستويات أعلى من واجهة برمجة التطبيقات.
Android 16 (المستوى 36 لواجهة برمجة التطبيقات)
تنطبق التغييرات التالية على التطبيقات التي تعمل على الإصدار 16 من نظام التشغيل Android أو الإصدارات الأحدث، بغض النظر عن مستوى واجهة برمجة التطبيقات الذي تستهدفه:
يجب الآن أن تلتزم المهام التي تعمل في الخلفية والتي يتم بدء تشغيلها من خدمة تعمل في المقدّمة بحصص وقت التشغيل الخاصة بها. ويشمل ذلك المهام المجدوَلة مباشرةً باستخدام
JobScheduler
، بالإضافة إلى المهام التي تم إنشاؤها بواسطة مكتبات أخرى، مثل
WorkManager أو DownloadManager
.
لنقل البيانات استجابةً لإجراء يتخذه المستخدم، ننصحك باستخدام مَهمة نقل البيانات التي يبدأها المستخدم. هذه الوظائف معفاة من حصص الوظائف العادية.
Android 15 (المستوى 35 لواجهة برمجة التطبيقات)
تنطبق المتطلبات التالية على التطبيقات التي تستهدف المستوى 35 أو مستوى أحدث لواجهة برمجة التطبيقات:
Android 14 (المستوى 34 لواجهة برمجة التطبيقات)
تنطبق المتطلبات التالية على التطبيقات التي تستهدف المستوى 34 أو مستوى أحدث لواجهة برمجة التطبيقات:
Android 12 (المستوى 31 لواجهة برمجة التطبيقات)
تنطبق المتطلبات التالية على التطبيقات التي تستهدف المستوى 31 أو أعلى لواجهة برمجة التطبيقات:
- لا يُسمح للتطبيقات بتشغيل الخدمات التي تعمل في المقدّمة عندما يكون التطبيق يعمل في الخلفية، مع بعض الاستثناءات المحدّدة. لمزيد من المعلومات، وللاطّلاع على الاستثناءات من هذه القاعدة، يُرجى الرجوع إلى قيود على بدء خدمة تعمل في المقدّمة من الخلفية.
Android 11 (المستوى 30 لواجهة برمجة التطبيقات)
تنطبق المتطلبات التالية على التطبيقات التي تستهدف المستوى 30 أو مستوى أحدث لواجهة برمجة التطبيقات:
Android 10 (المستوى 29 لواجهة برمجة التطبيقات)
تنطبق المتطلبات التالية على التطبيقات التي تستهدف المستوى 29 من واجهة برمجة التطبيقات أو المستويات الأحدث:
Android 9 (المستوى 28 لواجهة برمجة التطبيقات)
يقدّم نظام التشغيل Android 9 الإذن
FOREGROUND_SERVICE
. يجب أن تحصل التطبيقات التي تعمل على الإصدار 9 من نظام التشغيل Android وتستخدم خدمات تعمل في المقدّمة على هذا الإذن.
إذا حاول تطبيق يستهدف المستوى 28 أو أعلى من واجهة برمجة التطبيقات إنشاء خدمة تعمل في المقدّمة بدون طلب إذن FOREGROUND_SERVICE
، سيُصدر النظام الخطأ SecurityException
.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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"]],["تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["The foreground service documentation describes the current behavior of\nAndroid foreground services. The documentation gives guidance on best\npractices for most apps, whether or not they target the most recent version\nof Android.\n\nThis page describes some of the most recent important changes to foreground\nservices, and the implications for apps that aren't targeting the most\nrecent version of the Android platform. In many cases, best practices that\nwere optional for apps targeting lower API levels become mandatory for apps\nthat target higher API levels.\n\nAndroid 16 (API level 36)\n\nThe following changes apply to apps that run on Android 16 or higher,\nregardless of what API level they target:\n\n- Background jobs started from a foreground service now must adhere to their\n respective runtime quotas. This includes jobs scheduled directly with\n [`JobScheduler`](/reference/android/app/job/JobScheduler), as well as jobs created by other libraries like\n [WorkManager](/develop/background-work/background-tasks/persistent) or [`DownloadManager`](/reference/android/app/DownloadManager).\n\n To transfer data in response to a user action, consider using a\n [user-initiated data transfer job](/develop/background-work/background-tasks/uidt). These jobs are exempt from the\n ordinary job quotas.\n\nAndroid 15 (API level 35)\n\nThe following requirements apply to apps that target API\nlevel 35 or higher:\n\n- There are new restrictions on how long a `dataSync` foreground service can run. These restrictions are described in [Foreground service timeout\n behavior](/develop/background-work/services/fgs/timeout). Similar restrictions apply to the (new in Android 15) `mediaProcessing` foreground service type.\n- [`BOOT_COMPLETED` foreground services are no longer allowed to launch certain\n foreground services](/about/versions/15/behavior-changes-15#fgs-boot-completed).\n- Apps that hold the `SYSTEM_ALERT_WINDOW` permission are only allowed to launch foreground services from the background if they currently have a visible overlay window (or if they meet one of the other [exemptions from background\n start restrictions](/develop/background-work/services/fgs/restrictions-bg-start#background-start-restriction-exemptions)). Previously, the exemption for those apps was broader.\n\nAndroid 14 (API level 34)\n\nThe following requirements apply to apps that target API\nlevel 34 or higher:\n\n- You must [declare all foreground services](/develop/background-work/services/fgs/declare) with their service types.\n- Apps must request the appropriate permission type for the kind of work the foreground service will be doing. Each [foreground service type](/develop/background-work/services/fgs/service-types) has a corresponding permission type. For example, if an app launches a foreground service that uses the camera, you must request both the [`FOREGROUND_SERVICE`](/reference/android/Manifest.permission#FOREGROUND_SERVICE) and [`FOREGROUND_SERVICE_CAMERA`](/reference/android/Manifest.permission#FOREGROUND_SERVICE_CAMERA) permissions. If an app targets API level 34 or higher and doesn't request the appropriate specific permission, the system throws a `SecurityException`.\n\nAndroid 12 (API level 31)\n\nThe following requirements apply to apps that target API\nlevel 31 or higher:\n\n- Apps are not allowed to launch foreground services while the app is in the background, with a few specific exceptions. For more information, and information about the exceptions to this rule, see [Restrictions on starting\n a foreground service from the background](/develop/background-work/services/fgs/restrictions-bg-start).\n\nAndroid 11 (API level 30)\n\nThe following requirements apply to apps that target API\nlevel 30 or higher:\n\n- If an app's foreground services use the camera or microphone, the app must [declare the service](/develop/background-work/services/fgs/declare) with the [`camera`](/develop/background-work/services/fgs/service-types#camera) or [`microphone`](/develop/background-work/services/fgs/service-types#microphone) service type, respectively.\n\nAndroid 10 (API level 29)\n\nThe following requirements apply to apps that target API\nlevel 29 or higher:\n\n- If an app's foreground services use location information, the app must [declare the service](/develop/background-work/services/fgs/declare) with the [`location`](/develop/background-work/services/fgs/service-types#location) service type.\n\nAndroid 9 (API level 28)\n\nAndroid 9 introduces the\n[`FOREGROUND_SERVICE`](/reference/android/Manifest.permission#FOREGROUND_SERVICE) permission. Apps running on\nAndroid 9 that use foreground services must have that permission.\n\nIf an app that targets API level 28 or higher attempts\nto create a foreground service without requesting the `FOREGROUND_SERVICE`\npermission, the system throws a [`SecurityException`](/reference/java/lang/SecurityException)."]]