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

เอกสารประกอบเกี่ยวกับบริการที่ทำงานอยู่เบื้องหน้าอธิบายลักษณะการทำงานปัจจุบันของบริการที่ทำงานอยู่เบื้องหน้าของ 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