การเปลี่ยนแปลงบริการที่ทำงานอยู่เบื้องหน้า

เอกสารประกอบเกี่ยวกับบริการที่ทำงานอยู่เบื้องหน้าอธิบายลักษณะการทำงานปัจจุบันของบริการที่ทำงานอยู่เบื้องหน้าของ Android เอกสารประกอบมีคำแนะนำเกี่ยวกับแนวทางปฏิบัติแนะนำสำหรับแอปส่วนใหญ่ ไม่ว่าจะกำหนดเป้าหมายเป็น Android เวอร์ชันล่าสุดหรือไม่ก็ตาม

หน้านี้จะอธิบายการเปลี่ยนแปลงที่สำคัญล่าสุดบางอย่างเกี่ยวกับบริการที่ทำงานอยู่เบื้องหน้า และผลกระทบต่อแอปที่ไม่ได้กำหนดเป้าหมายเป็นแพลตฟอร์ม Android เวอร์ชันล่าสุด ในหลายกรณี แนวทางปฏิบัติแนะนำที่ไม่บังคับสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับต่ำกว่าจะกลายเป็นแนวทางปฏิบัติบังคับสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับสูงกว่า

Android 16 (API ระดับ 36)

การเปลี่ยนแปลงต่อไปนี้มีผลกับแอปที่ทำงานใน Android 16 ขึ้นไป ไม่ว่าจะกำหนดเป้าหมาย API ระดับใดก็ตาม

  • ตอนนี้งานเบื้องหลังที่เริ่มต้นจากบริการที่ทำงานอยู่เบื้องหน้าต้องเป็นไปตามโควต้ารันไทม์ที่เกี่ยวข้อง ซึ่งรวมถึงงานที่กําหนดเวลาไว้กับ JobScheduler โดยตรง รวมถึงงานที่ไลบรารีอื่นๆ สร้าง เช่น WorkManager หรือ DownloadManager

    หากต้องการโอนข้อมูลเพื่อตอบสนองการดําเนินการของผู้ใช้ ให้พิจารณาใช้การโอนข้อมูลที่เริ่มต้นโดยผู้ใช้ งานเหล่านี้จะได้รับการยกเว้นจากโควต้างานทั่วไป

Android 15 (API ระดับ 35)

ข้อกำหนดต่อไปนี้ใช้กับแอปที่กำหนดเป้าหมายเป็น API ระดับ 35 ขึ้นไป

Android 14 (API ระดับ 34)

ข้อกำหนดต่อไปนี้มีผลบังคับใช้กับแอปที่กำหนดเป้าหมายเป็น API ระดับ 34 ขึ้นไป

Android 12 (API ระดับ 31)

ข้อกำหนดต่อไปนี้มีผลบังคับใช้กับแอปที่กำหนดเป้าหมายเป็น API ระดับ 31 ขึ้นไป

Android 11 (API ระดับ 30)

ข้อกำหนดต่อไปนี้มีผลบังคับใช้กับแอปที่กำหนดเป้าหมายเป็น API ระดับ 30 ขึ้นไป

  • หากบริการที่ทำงานอยู่เบื้องหน้าของแอปใช้กล้องหรือไมโครโฟน แอปจะต้องประกาศบริการด้วยประเภทบริการ camera หรือ microphone ตามลำดับ

Android 10 (API ระดับ 29)

ข้อกำหนดต่อไปนี้มีผลบังคับใช้กับแอปที่กำหนดเป้าหมายเป็น API ระดับ 29 ขึ้นไป

  • หากบริการที่ทำงานอยู่เบื้องหน้าของแอปใช้ข้อมูลตำแหน่ง แอปจะต้องประกาศบริการด้วยประเภทบริการ location

Android 9 (API ระดับ 28)

Android 9 เปิดตัวสิทธิ์ FOREGROUND_SERVICE แอปที่ทำงานใน Android 9 ที่ใช้บริการที่ทำงานอยู่เบื้องหน้าต้องมีสิทธิ์ดังกล่าว

หากแอปที่กำหนดเป้าหมายเป็น API ระดับ 28 ขึ้นไปพยายามสร้างบริการที่ทำงานอยู่เบื้องหน้าโดยไม่ขอสิทธิ์ FOREGROUND_SERVICE ระบบจะแสดงข้อผิดพลาด SecurityException