Dokumentasi layanan latar depan menjelaskan perilaku layanan latar depan Android saat ini. Dokumentasi ini memberikan panduan tentang praktik terbaik untuk sebagian besar aplikasi, baik yang menargetkan versi Android terbaru maupun tidak.
Halaman ini menjelaskan beberapa perubahan penting terbaru pada layanan latar depan, dan implikasinya bagi aplikasi yang tidak menargetkan versi terbaru platform Android. Dalam banyak kasus, praktik terbaik yang bersifat opsional untuk aplikasi yang menargetkan level API yang lebih rendah menjadi wajib untuk aplikasi yang menargetkan level API yang lebih tinggi.
Android 16 (level API 36)
Perubahan berikut berlaku untuk aplikasi yang berjalan di Android 16 atau yang lebih tinggi, terlepas dari level API yang ditargetkan:
Tugas latar belakang yang dimulai dari layanan latar depan kini harus mematuhi kuota runtime masing-masing. Hal ini mencakup tugas yang dijadwalkan langsung dengan
JobScheduler
, serta tugas yang dibuat oleh library lain seperti WorkManager atauDownloadManager
.Untuk mentransfer data sebagai respons terhadap tindakan pengguna, pertimbangkan untuk menggunakan tugas transfer data yang dimulai oleh pengguna. Pekerjaan ini dikecualikan dari kuota pekerjaan biasa.
Android 15 (level API 35)
Persyaratan berikut berlaku untuk aplikasi yang menargetkan level API 35 atau yang lebih tinggi:
- Ada batasan baru tentang durasi layanan latar depan
dataSync
dapat berjalan. Pembatasan ini dijelaskan dalam Perilaku waktu tunggu layanan latar depan. Pembatasan serupa berlaku untuk jenis layanan latar depanmediaProcessing
(baru di Android 15). - Layanan latar depan
BOOT_COMPLETED
tidak lagi diizinkan untuk meluncurkan layanan latar depan tertentu. - Aplikasi yang memiliki izin
SYSTEM_ALERT_WINDOW
hanya diizinkan untuk meluncurkan layanan latar depan dari latar belakang jika saat ini memiliki jendela overlay yang terlihat (atau jika memenuhi salah satu pengecualian dari batasan peluncuran di latar belakang). Sebelumnya, pengecualian untuk aplikasi tersebut lebih luas.
Android 14 (level API 34)
Persyaratan berikut berlaku untuk aplikasi yang menargetkan level API 34 atau yang lebih tinggi:
- Anda harus menyatakan semua layanan latar depan dengan jenis layanannya.
- Aplikasi harus meminta jenis izin yang sesuai untuk jenis pekerjaan yang akan dilakukan layanan latar depan. Setiap jenis layanan latar depan
memiliki jenis izin yang sesuai. Misalnya, jika aplikasi meluncurkan
layanan latar depan yang menggunakan kamera, Anda harus meminta izin
FOREGROUND_SERVICE
danFOREGROUND_SERVICE_CAMERA
. Jika aplikasi menargetkan API level 34 atau yang lebih tinggi dan tidak meminta izin spesifik yang sesuai, sistem akan menampilkanSecurityException
.
Android 12 (level API 31)
Persyaratan berikut berlaku untuk aplikasi yang menargetkan level API 31 atau yang lebih tinggi:
- Aplikasi tidak diizinkan meluncurkan layanan latar depan saat aplikasi berada di latar belakang, dengan beberapa pengecualian khusus. Untuk mengetahui informasi selengkapnya, dan informasi tentang pengecualian terhadap aturan ini, lihat Pembatasan untuk memulai layanan latar depan dari latar belakang.
Android 11 (level API 30)
Persyaratan berikut berlaku untuk aplikasi yang menargetkan level API 30 atau yang lebih tinggi:
- Jika layanan latar depan aplikasi menggunakan kamera atau mikrofon, aplikasi harus
mendeklarasikan layanan dengan jenis layanan
camera
ataumicrophone
masing-masing.
Android 10 (level API 29)
Persyaratan berikut berlaku untuk aplikasi yang menargetkan level API 29 atau yang lebih tinggi:
- Jika layanan latar depan aplikasi menggunakan informasi lokasi, aplikasi harus
mendeklarasikan layanan dengan jenis layanan
location
.
Android 9 (level API 28)
Android 9 memperkenalkan izin
FOREGROUND_SERVICE
. Aplikasi yang berjalan di
Android 9 yang menggunakan layanan latar depan harus memiliki izin tersebut.
Jika aplikasi yang menargetkan level API 28 atau yang lebih tinggi mencoba membuat layanan latar depan tanpa meminta izin FOREGROUND_SERVICE
, sistem akan memunculkan SecurityException
.