تغییرات در سرویس‌های پیش‌زمینه‌ای

سند سرویس پیش‌زمینه‌ای رفتار فعلی سرویس‌های پیش‌زمینه‌ای Android را شرح می‌دهد. این اسناد راهنمایی‌هایی درباره روال‌های مطلوب برای اکثر برنامه‌ها ارائه می‌دهد، چه جدیدترین نسخه Android را هدف قرار دهند یا نه.

این صفحه برخی‌از مهم‌ترین تغییرات اخیر در سرویس‌های پیش‌زمینه‌ای و پیامدهای آن برای برنامه‌هایی را که جدیدترین نسخه پلاتفرم Android را هدف قرار نمی‌دهند شرح می‌دهد. در بسیاری از موارد، روال‌های مطلوبی که برای برنامه‌هایی با سطح میانای برنامه‌سازی کاربردی هدف پایین‌تر اختیاری بودند، برای برنامه‌هایی با سطح میانای برنامه‌سازی کاربردی هدف بالاتر اجباری می‌شوند.

‫Android 16 (سطح میانای برنامه‌سازی کاربردی ۳۶)

تغییرات زیر برای برنامه‌هایی اعمال می‌شود که در Android 16 یا بالاتر اجرا می‌شوند، صرف‌نظر از اینکه چه سطح میانای برنامه‌سازی کاربردی را هدف قرار می‌دهند:

  • کارهای پس‌زمینه‌ای که از سرویس پیش‌زمینه‌ای شروع می‌شوند اکنون باید از سهمیه‌های زمان اجرای مربوطه خود پیروی کنند. این شامل کارهای زمان‌بندی‌شده مستقیماً با JobScheduler، و همچنین کارهای ایجادشده توسط کتابخانه‌های دیگر مانند WorkManager یا DownloadManager می‌شود.

    برای انتقال داده در پاسخ به کنش کاربر، از کار انتقال داده آغازشده ازسوی کاربر استفاده کنید. این مشاغل از سهمیه‌های شغلی معمولی معاف هستند.

Android 15 (سطح میانای برنامه‌سازی کاربردی 35)

الزامات زیر برای برنامه‌هایی اعمال می‌شود که سطح میانای برنامه‌سازی کاربردی ۳۵ یا بالاتر را هدف قرار می‌دهند:

Android 14 (سطح میانای برنامه‌سازی کاربردی 34)

الزامات زیر برای برنامه‌هایی اعمال می‌شود که سطح میانای برنامه‌سازی کاربردی ۳۴ یا بالاتر را هدف قرار می‌دهند:

  • باید همه سرویس‌های پیش‌زمینه‌ای را با نوع سرویسشان اعلام کنید.
  • برنامه‌ها باید نوع اجازه مناسب را برای نوع کاری که سرویس پیش‌زمینه‌ای انجام خواهد داد درخواست کنند. هر نوع سرویس پیش‌زمینه‌ای یک نوع اجازه متناظر دارد. برای مثال، اگر برنامه‌ای سرویس پیش‌زمینه‌ای را راه‌اندازی کند که از دوربین استفاده می‌کند، باید هم اجازه FOREGROUND_SERVICE و هم اجازه FOREGROUND_SERVICE_CAMERA را درخواست کنید. اگر برنامه‌ای سطح میانای برنامه‌سازی کاربردی ۳۴ یا بالاتر را هدف قرار دهد و اجازه خاص مناسب را درخواست نکند، سیستم SecurityException را صادر می‌کند.

‫Android 12 (سطح میانای برنامه‌سازی کاربردی 31)

الزامات زیر برای برنامه‌هایی که سطح میانای برنامه‌سازی کاربردی ۳۱ یا بالاتر را هدف قرار می‌دهند اعمال می‌شود:

Android 11 (سطح میانای برنامه‌سازی کاربردی 30)

الزامات زیر برای برنامه‌هایی اعمال می‌شود که سطح میانای برنامه‌سازی کاربردی ۳۰ یا بالاتر را هدف قرار می‌دهند:

  • اگر سرویس‌های پیش‌زمینه‌ای برنامه از دوربین یا میکروفون استفاده می‌کنند، برنامه باید سرویس را به‌ترتیب با نوع سرویس camera یا microphone اعلام کند.

Android 10 (سطح میانای برنامه‌سازی کاربردی ۲۹)

الزامات زیر برای برنامه‌هایی اعمال می‌شود که سطح میانای برنامه‌سازی کاربردی ۲۹ یا بالاتر را هدف قرار می‌دهند:

  • اگر سرویس‌های پیش‌زمینه‌ای برنامه از اطلاعات مکان استفاده می‌کند، برنامه باید سرویس را با نوع سرویس location اعلام کند.

Android 9 (سطح میانای برنامه‌سازی کاربردی ۲۸)

Android 9 اجازه FOREGROUND_SERVICE را معرفی می‌کند. برنامه‌هایی که در Android 9 اجرا می‌شوند و از سرویس‌های پیش‌زمینه‌ای استفاده می‌کنند باید این اجازه را داشته باشند.

اگر برنامه‌ای که سطح میانای برنامه‌سازی کاربردی ۲۸ یا بالاتر را هدف قرار می‌دهد، تلاش کند سرویس پیش‌زمینه‌ای را بدون درخواست اجازه FOREGROUND_SERVICE ایجاد کند، سیستم SecurityException را صادر می‌کند.