<layanan>

sintaksis:
<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["camera" | "connectedDevice" |
                                        "dataSync" | "health" | "location" |
                                        "mediaPlayback" | "mediaProjection" |
                                        "microphone" | "phoneCall" |
                                        "remoteMessaging" | "shortService" |
                                        "specialUse" | "systemExempted"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string" >
    ...
</service>
terdapat dalam:
<application>
dapat berisi:
<intent-filter>
<meta-data>
deskripsi:
Mendeklarasikan layanan, subclass Service, sebagai salah satu komponen aplikasi. Tidak seperti aktivitas, layanan tidak memiliki antarmuka pengguna visual. Layanan digunakan untuk mengimplementasikan operasi latar belakang yang sudah berjalan lama atau API komunikasi kaya yang bisa dipanggil oleh aplikasi lain.

Semua layanan harus diwakili oleh elemen-elemen <service> dalam file manifes. Apa pun yang tidak dideklarasikan tidak akan terlihat oleh sistem dan tidak pernah dijalankan.

Catatan: Di Android 8.0 (API level 26) dan yang lebih baru, sistem membatasi apa yang dapat dilakukan aplikasi saat aplikasi berjalan di latar belakang. Untuk mengetahui informasi selengkapnya, lihat panduan yang membahas batas eksekusi latar belakang dan batas lokasi latar belakang.

atribut:
android:description
String yang dapat dibaca pengguna, yang mendeskripsikan layanan. Deskripsi ditetapkan sebagai referensi ke resource string sehingga dapat dilokalkan seperti string lain pada antarmuka pengguna.
android:directBootAware

Apakah layanan tersebut Direct-Boot aware, yaitu apakah layanan itu dapat dijalankan sebelum pengguna membuka kunci perangkat.

Catatan: Selama Direct Boot, layanan dalam aplikasi Anda hanya dapat mengakses data yang disimpan di penyimpanan perangkat yang dilindungi.

Nilai default-nya adalah "false".

android:enabled
Apakah layanan dapat dibuat instance-nya oleh sistem. Nilainya "true" jika ya, dan "false" jika tidak. Nilai defaultnya adalah "true".

Elemen <application> memiliki atribut enabled sendiri yang diterapkan ke semua komponen aplikasi, termasuk layanan. Atribut <application> dan <service> harus bernilai "true" karena keduanya ditetapkan secara default agar sistem dapat diaktifkan. Jika salah satunya adalah "false", layanan tersebut akan dinonaktifkan dan tidak dapat dibuat instance-nya.

android:exported
Apakah komponen aplikasi lain dapat memanggil layanan atau berinteraksi dengannya. Nilainya "true" jika bisa, dan "false" jika tidak. Ketika nilainya adalah "false", hanya komponen aplikasi yang sama atau aplikasi dengan ID pengguna yang sama yang dapat memulai layanan atau mengikatnya.

Nilai default tergantung apakah layanan tersebut berisi filter intent. Tidak adanya filter berarti layanan dapat dipanggil hanya dengan menentukan nama class yang tepat. Ini menyiratkan bahwa layanan ini dimaksudkan hanya untuk penggunaan internal aplikasi, karena orang lain tidak tahu nama class-nya. Jadi dalam hal ini, nilai defaultnya adalah "false". Di sisi lain, keberadaan setidaknya satu filter menyiratkan bahwa layanan ini dimaksudkan untuk penggunaan eksternal sehingga nilai defaultnya adalah "true".

Atribut ini bukan satu-satunya cara untuk membatasi eksposur layanan ke aplikasi lain. Anda juga dapat menggunakan izin untuk membatasi entity eksternal yang dapat berinteraksi dengan layanan. Lihat atribut permission.

android:foregroundServiceType

Menentukan bahwa layanan ini adalah layanan latar depan yang memenuhi kasus penggunaan tertentu. Misalnya, jenis layanan latar depan "location" menunjukkan bahwa aplikasi mendapatkan lokasi perangkat saat ini, biasanya untuk melanjutkan tindakan yang dimulai oleh pengguna yang terkait dengan lokasi perangkat.

Anda dapat menetapkan beberapa jenis layanan latar depan untuk layanan tertentu.

android:icon
Ikon yang mewakili layanan. Atribut ini ditetapkan sebagai referensi ke resource drawable yang berisi definisi gambar. Jika tidak, ikon yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan. Lihat atribut icon milik elemen <application>.

Ikon layanan, baik yang ditetapkan di sini maupun oleh elemen <application>, juga merupakan ikon default untuk semua filter intent layanan. Lihat atribut icon milik elemen <intent-filter>.

android:isolatedProcess
Jika disetel ke "true", layanan ini akan dijalankan dalam proses khusus yang terisolasi dari sistem lainnya dan tidak memiliki izinnya sendiri. Satu-satunya komunikasi dengannya adalah melalui Service API, dengan mengikat dan memulai.
android:label
Nama yang dapat dibaca pengguna untuk layanan. Jika atribut ini tidak ditetapkan, label yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan. Lihat atribut label milik elemen <application>.

Label layanan, baik yang ditetapkan di sini maupun oleh elemen <application>, juga merupakan label default untuk semua filter intent layanan. Lihat atribut label milik elemen <intent-filter>.

Label ini ditetapkan sebagai referensi ke resource string sehingga dapat dilokalkan seperti string lain pada antarmuka pengguna. Namun, untuk memudahkan Anda mengembangkan aplikasi, label ini juga dapat ditetapkan sebagai string mentah.

android:name
Nama subclass Service yang mengimplementasikan layanan. Nama ini adalah nama class yang sepenuhnya memenuhi syarat, seperti "com.example.project.RoomService". Namun, sebagai singkatan, jika karakter pertamanya adalah titik, seperti ".RoomService", karakter ini akan ditambahkan ke nama paket yang ditetapkan dalam elemen <manifest>.

Setelah Anda memublikasikan aplikasi, jangan ubah nama ini, kecuali jika Anda menetapkan android:exported="false".

Tidak ada default untuknya. Nama ini harus ditetapkan.

android:permission
Nama izin yang harus dimiliki suatu entity untuk meluncurkan layanan atau mengikatnya. Jika pemanggil startService(), bindService(), atau stopService() tidak diberi izin ini, metode ini tidak akan berfungsi dan Intent tidak dikirim ke layanan.

Jika atribut ini tidak ditetapkan, izin yang ditetapkan oleh atribut permission milik elemen <application> diterapkan untuk layanan tersebut. Jika tidak ada atribut yang ditetapkan, layanan tersebut tidak dilindungi oleh izin.

Untuk mengetahui informasi selengkapnya tentang izin, lihat bagian Izin di ringkasan manifes aplikasi dan Panduan keamanan.

android:process
Nama proses tempat layanan berjalan. Biasanya, semua komponen aplikasi berjalan pada proses default yang dibuat untuk aplikasi tersebut. Proses ini memiliki nama yang sama dengan paket aplikasi. Atribut process milik elemen <application> dapat menetapkan default yang berbeda untuk semua komponen. Namun, komponen dapat mengganti nilai default dengan atribut process-nya sendiri sehingga Anda dapat menyebarkan aplikasi ke berbagai proses.

Jika nama yang ditetapkan ke atribut ini dimulai dengan titik dua (:), proses baru, yang bersifat pribadi untuk aplikasi, dibuat saat diperlukan dan layanan berjalan dalam proses tersebut.

Jika nama proses dimulai dengan karakter huruf kecil, layanan akan berjalan pada proses global dari nama tersebut, jika memiliki izin untuk melakukannya. Hal ini memungkinkan komponen dalam aplikasi yang berbeda untuk berbagi proses, sehingga mengurangi penggunaan resource.

lihat juga:
<application>
<activity>
diperkenalkan di:
Level API 1