Các thay đổi về kiểu dịch vụ trên nền trước cho Android 15

Chúng tôi sẽ thực hiện những thay đổi sau đây đối với các kiểu dịch vụ trên nền trước trong Android 15.

Xử lý phương tiện

Loại dịch vụ trên nền trước cần khai báo trong tệp kê khai trong
android:foregroundServiceType
mediaProcessing
Quyền khai báo trong tệp kê khai
FOREGROUND_SERVICE_MEDIA_PROCESSING
Hằng số để truyền đến startForeground()
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
Điều kiện tiên quyết về thời gian chạy
Không có
Nội dung mô tả

Dịch vụ thực hiện các thao tác tốn nhiều thời gian đối với các thành phần nội dung nghe nhìn, chẳng hạn như chuyển đổi nội dung nghe nhìn sang các định dạng khác nhau. Hệ thống cho phép dịch vụ này chạy trong một khoảng thời gian giới hạn. Trong trường hợp thông thường, giới hạn thời gian này là 6 giờ trên mỗi 24 giờ. (Giới hạn này dùng chung cho tất cả mediaProcessing dịch vụ trên nền trước của ứng dụng.)

Ứng dụng của bạn nên dừng dịch vụ xử lý nội dung nghe nhìn theo cách thủ công trong các trường hợp sau:

Nếu đạt đến khoảng thời gian chờ, hệ thống sẽ gọi phương thức Service.onTimeout(int, int) của dịch vụ. Tại thời điểm này, dịch vụ có vài giây để gọi Service.stopSelf(). Nếu dịch vụ không gọi Service.stopSelf(), một lỗi ANR sẽ xuất hiện với thông báo lỗi sau: "Dịch vụ trên nền trước của <fgs_type> không dừng trong thời gian chờ: <component_name>".

Lưu ý: Service.onTimeout(int, int) không có trên Android 14 trở xuống. Trên các thiết bị chạy các phiên bản đó, nếu một dịch vụ xử lý nội dung đa phương tiện đạt đến khoảng thời gian chờ, thì hệ thống sẽ ngay lập tức lưu ứng dụng vào bộ nhớ đệm. Vì lý do này, ứng dụng của bạn không nên nhận thông báo hết thời gian chờ. Thay vào đó, ứng dụng sẽ chấm dứt dịch vụ trên nền trước hoặc thay đổi sang dịch vụ nền ngay khi thích hợp.

Camera

Các ứng dụng nhắm đến Android 15 trở lên không được phép chạy dịch vụ trên nền trước của máy ảnh qua broadcast receiver BOOT_COMPLETED. Để biết thêm thông tin, hãy xem phần Hạn chế đối với broadcast receiver BOOT_COMPLETED khởi chạy dịch vụ trên nền trước.

Đồng bộ hoá dữ liệu

Các ứng dụng nhắm đến Android 15 trở lên không được phép chạy dịch vụ đồng bộ hoá dữ liệu trên nền trước qua broadcast receiver BOOT_COMPLETED. Để biết thêm thông tin, hãy xem phần Hạn chế đối với broadcast receiver BOOT_COMPLETED khởi chạy dịch vụ trên nền trước.

Phát nội dung nghe nhìn

Các ứng dụng nhắm đến Android 15 trở lên không được phép chạy dịch vụ trên nền trước để phát nội dung đa phương tiện qua broadcast receiver BOOT_COMPLETED. Để biết thêm thông tin, hãy xem phần Hạn chế đối với broadcast receiver BOOT_COMPLETED khởi chạy dịch vụ trên nền trước.

Chiếu nội dung nghe nhìn

Các ứng dụng nhắm đến Android 15 trở lên không được phép chạy dịch vụ chiếu nội dung đa phương tiện trên nền trước từ broadcast receiver BOOT_COMPLETED. Để biết thêm thông tin, hãy xem phần Hạn chế đối với broadcast receiver BOOT_COMPLETED khởi chạy dịch vụ trên nền trước.

Micrô

Các ứng dụng nhắm đến Android 14 (API cấp 34) trở lên không được phép chạy dịch vụ micrô trên nền trước qua một broadcast receiver BOOT_COMPLETED. Để biết thêm thông tin, hãy xem phần Hạn chế đối với broadcast receiver BOOT_COMPLETED khởi chạy dịch vụ trên nền trước.

Cuộc gọi điện thoại

Các ứng dụng nhắm đến Android 15 trở lên không được phép chạy dịch vụ trên nền trước của cuộc gọi điện thoại qua broadcast receiver BOOT_COMPLETED. Để biết thêm thông tin, hãy xem phần Hạn chế đối với broadcast receiver BOOT_COMPLETED khởi chạy dịch vụ trên nền trước.