เอกสารประกอบเกี่ยวกับบริการที่ทำงานอยู่เบื้องหน้าจะอธิบายลักษณะการทำงานปัจจุบันของ บริการที่ทำงานอยู่เบื้องหน้าของ Android เอกสารประกอบนี้ให้คำแนะนำเกี่ยวกับแนวทางปฏิบัติแนะนำสำหรับแอปส่วนใหญ่ ไม่ว่าแอปเหล่านั้นจะกำหนดเป้าหมายเป็น Android เวอร์ชันล่าสุดหรือไม่ก็ตาม
หน้านี้อธิบายการเปลี่ยนแปลงที่สำคัญล่าสุดบางอย่างเกี่ยวกับบริการที่ทำงานอยู่เบื้องหน้า และผลกระทบต่อแอปที่ไม่ได้กำหนดเป้าหมายเป็นแพลตฟอร์ม Android เวอร์ชันล่าสุด ในหลายกรณี แนวทางปฏิบัติแนะนำที่ เป็นทางเลือกสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับต่ำกว่าจะกลายเป็นข้อบังคับสำหรับแอป ที่กำหนดเป้าหมายเป็น API ระดับสูงกว่า
Android 16 (API ระดับ 36)
การเปลี่ยนแปลงต่อไปนี้มีผลกับแอปที่ทำงานบน Android 16 ขึ้นไป โดยไม่คำนึงถึงระดับ API ที่แอปกำหนดเป้าหมาย
ตอนนี้งานที่ทำงานอยู่เบื้องหลังซึ่งเริ่มจากบริการที่ทำงานอยู่เบื้องหน้าต้องเป็นไปตามโควต้ารันไทม์ของตนเอง ซึ่งรวมถึงงานที่กำหนดเวลาโดยตรงด้วย
JobScheduler
รวมถึงงานที่สร้างโดยไลบรารีอื่นๆ เช่น WorkManager หรือDownloadManager
หากต้องการโอนข้อมูลเพื่อตอบสนองต่อการดำเนินการของผู้ใช้ ให้พิจารณาใช้งานการโอนข้อมูลที่เริ่มต้นโดยผู้ใช้ งานเหล่านี้ได้รับการยกเว้นจาก โควตางานปกติ
Android 15 (API ระดับ 35)
ข้อกำหนดต่อไปนี้ใช้กับแอปที่กำหนดเป้าหมายเป็น API ระดับ 35 ขึ้นไป
- มีการจำกัดใหม่เกี่ยวกับระยะเวลาที่
dataSync
บริการที่ทำงานอยู่เบื้องหน้าจะทำงานได้ ข้อจำกัดเหล่านี้อธิบายไว้ในลักษณะการทำงานของระยะหมดเวลาของบริการที่ทำงานอยู่เบื้องหน้า ข้อจำกัดที่คล้ายกันนี้มีผลกับmediaProcessing
ประเภทบริการที่ทำงานอยู่เบื้องหน้า (ใหม่ใน Android 15) BOOT_COMPLETED
จะไม่อนุญาตให้เปิดบริการที่ทำงานอยู่เบื้องหน้าบางอย่างอีกต่อไป- แอปที่มีสิทธิ์
SYSTEM_ALERT_WINDOW
จะได้รับอนุญาตให้เปิดใช้บริการที่ทำงานอยู่เบื้องหน้าจากเบื้องหลังก็ต่อเมื่อมีหน้าต่างซ้อนทับที่มองเห็นได้ในขณะนั้น (หรือหากเป็นไปตามข้อยกเว้นอื่นๆ จากข้อจำกัดในการเริ่มต้นจากเบื้องหลัง) ก่อนหน้านี้การยกเว้นสำหรับแอปเหล่านั้น ครอบคลุมมากกว่านี้
Android 14 (API ระดับ 34)
ข้อกำหนดต่อไปนี้มีผลกับแอปที่กำหนดเป้าหมายเป็น API ระดับ 34 ขึ้นไป
- คุณต้องประกาศบริการที่ทำงานอยู่เบื้องหน้าทั้งหมดพร้อมประเภทบริการ
- แอปต้องขอสิทธิ์ประเภทที่เหมาะสมกับลักษณะงานที่บริการที่ทำงานอยู่เบื้องหน้าจะทำ ประเภทบริการที่ทำงานอยู่เบื้องหน้าแต่ละประเภท
มีประเภทสิทธิ์ที่เกี่ยวข้อง เช่น หากแอปเปิดใช้บริการที่ทำงานอยู่เบื้องหน้าที่ใช้กล้อง คุณต้องขอทั้งสิทธิ์
FOREGROUND_SERVICE
และFOREGROUND_SERVICE_CAMERA
หาก แอปกำหนดเป้าหมายเป็น API ระดับ 34 ขึ้นไปและไม่ได้ ขอสิทธิ์ที่เจาะจงที่เหมาะสม ระบบจะแสดงSecurityException
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