تغييرات على الخدمات التي تعمل في المقدّمة

توضّح مستندات الخدمات التي تعمل في المقدّمة السلوك الحالي لهذه الخدمات في 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.