تغییرات در خدمات پیش زمینه

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

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

اندروید ۱۶ (سطح API ۳۶)

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

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

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

اندروید ۱۵ (سطح API ۳۵)

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

اندروید ۱۴ (سطح API ۳۴)

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

اندروید ۱۲ (سطح API ۳۱)

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

اندروید ۱۱ (سطح API 30)

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

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

اندروید ۱۰ (سطح API ۲۹)

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

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

اندروید ۹ (سطح API 28)

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

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