Tài liệu về dịch vụ trên nền trước mô tả hành vi hiện tại của các dịch vụ trên nền trước của Android. Tài liệu này đưa ra hướng dẫn về các phương pháp hay nhất cho hầu hết ứng dụng, cho dù ứng dụng đó nhắm đến phiên bản Android mới nhất hay không.
Trang này mô tả một số thay đổi quan trọng gần đây nhất đối với các dịch vụ trên nền trước và tác động của các thay đổi đó đối với những ứng dụng không nhắm đến phiên bản mới nhất của nền tảng Android. Trong nhiều trường hợp, các phương pháp hay nhất không bắt buộc đối với ứng dụng nhắm đến các cấp độ API thấp hơn sẽ trở thành bắt buộc đối với ứng dụng nhắm đến các cấp độ API cao hơn.
Android 9 (API cấp 28)
Android 9 giới thiệu quyền FOREGROUND_SERVICE
. Các ứng dụng chạy trên Android 9 và sử dụng dịch vụ trên nền trước phải có quyền đó.
Nếu một ứng dụng nhắm đến API cấp 28 trở lên cố gắng tạo một dịch vụ trên nền trước mà không yêu cầu quyền FOREGROUND_SERVICE
, thì hệ thống sẽ gửi một SecurityException
.
Android 10 (API cấp 29)
Các yêu cầu sau đây áp dụng cho các ứng dụng nhắm đến API cấp 29 trở lên:
- Nếu dịch vụ trên nền trước của ứng dụng sử dụng thông tin vị trí, thì ứng dụng đó phải khai báo dịch vụ bằng loại dịch vụ
location
.
Android 11 (API cấp 30)
Các yêu cầu sau đây áp dụng cho những ứng dụng nhắm đến API cấp 30 trở lên:
- Nếu các dịch vụ trên nền trước của ứng dụng sử dụng máy ảnh hoặc micrô, thì ứng dụng đó phải khai báo dịch vụ tương ứng với loại dịch vụ
camera
hoặcmicrophone
.
Android 12 (API cấp 31)
Các yêu cầu sau đây áp dụng cho những ứng dụng nhắm đến API cấp 31 trở lên:
- Ứng dụng không được phép chạy dịch vụ trên nền trước khi đang chạy ở chế độ nền, ngoại trừ một vài trường hợp ngoại lệ cụ thể. Để biết thêm thông tin và thông tin về các trường hợp ngoại lệ đối với quy tắc này, hãy xem phần Hạn chế khi khởi động dịch vụ trên nền trước từ nền.
Android 14 (API cấp 34)
Các yêu cầu sau đây áp dụng cho các ứng dụng nhắm đến API cấp 34 trở lên:
- Bạn phải khai báo tất cả dịch vụ trên nền trước cùng với loại dịch vụ của chúng.
- Ứng dụng phải yêu cầu loại quyền thích hợp cho loại công việc mà dịch vụ trên nền trước sẽ thực hiện. Mỗi loại dịch vụ trên nền trước có một loại quyền tương ứng. Ví dụ: nếu một ứng dụng chạy một dịch vụ trên nền trước sử dụng máy ảnh, bạn phải yêu cầu cả quyền
FOREGROUND_SERVICE
vàFOREGROUND_SERVICE_CAMERA
. Nếu một ứng dụng nhắm đến API cấp 34 trở lên và không yêu cầu quyền cụ thể thích hợp, thì hệ thống sẽ gửi mộtSecurityException
.
Android 15 (API cấp 35)
Các yêu cầu sau đây áp dụng cho các ứng dụng nhắm đến API cấp 35 trở lên:
- Có các hạn chế mới về thời lượng chạy của dịch vụ trên nền trước
dataSync
. Các hạn chế này được mô tả trong phần Hành vi hết thời gian chờ của dịch vụ trên nền trước. Các hạn chế tương tự cũng áp dụng cho loại dịch vụ trên nền trướcmediaProcessing
(mới trong Android 15). - Các dịch vụ trên nền trước
BOOT_COMPLETED
không còn được phép chạy một số dịch vụ trên nền trước. - Các ứng dụng có quyền
SYSTEM_ALERT_WINDOW
chỉ được phép chạy các dịch vụ trên nền trước từ chế độ nền nếu ứng dụng đó hiện có cửa sổ lớp phủ hiển thị (hoặc nếu ứng dụng đó đáp ứng một trong các trường hợp miễn trừ khác đối với các quy định hạn chế về việc bắt đầu ở chế độ nền). Trước đây, các ứng dụng đó được miễn trừ rộng hơn.