<service>

sintaks:
<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["connectedDevice" | "dataSync" |
                                        "location" | "mediaPlayback" | "mediaProjection" |
                                        "phoneCall"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string" >
    . . .
</service>
dimuat dalam:
<application>
bisa berisi:
<intent-filter>
<meta-data>
keterangan:
Deklarasikan layanan (subkelas 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 akan dijalankan.

atribut:
android:description
String yang menjelaskan layanan kepada pengguna. Label harus ditetapkan sebagai referensi untuk sumber daya string, sehingga bisa dilokalkan seperti string lainnya dalam antarmuka pengguna.
android:directBootAware

Apakah layanan ini direct-boot aware atau tidak; yaitu, apakah dapat berjalan ataukah tidak sebelum pengguna membuka kunci perangkat.

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

Nilai defaultnya adalah "false".

android:enabled
Bisa atau tidaknya suatu layanan dibuat instance-nya oleh sistem — "true" kalau bisa, dan "false" jika tidak. Nilai default-nya 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 bisa diaktifkan. Jika salah satunya adalah "false", layanan dinonaktifkan; maka tidak bisa dipakai.

android:exported
Apakah komponen aplikasi lain dapat meminta layanan atau berinteraksi dengannya — "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 bahwa itu dapat dipanggil hanya dengan menentukan nama kelas yang tepat. Ini menyiratkan bahwa layanan ini dimaksudkan hanya untuk penggunaan internal aplikasi (karena orang lain tidak akan tahu nama kelasnya). Jadi dalam hal ini, nilai default 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 pemaparan layanan ke aplikasi lain. Anda juga dapat menggunakan izin untuk membatasi entitas eksternal yang dapat berinteraksi dengan layanan (lihat atribut permission).

android:foregroundServiceType

Tentukan 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 diprakarsai 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 harus disetel sebagai referensi untuk sumber daya dapat digambar yang berisi definisi gambar. Jika tidak disetel, ikon yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan (lihat elemen <application> atribut icon).

Ikon layanan — baik ditetapkan di sini atau oleh elemen <application> — adalah juga ikon default untuk semua filter intent layanan (lihat elemen <intent-filter> atribut icon).

android:isolatedProcess
Jika disetel ke true, layanan ini akan berjalan di bawah proses khusus yang terisolasi dari bagian sistem lainnya dan tidak memiliki izinnya sendiri. Satu-satunya komunikasi dengannya adalah melalui Service API (mengikat dan memulai).
android:label
Nama untuk layanan yang dapat ditampilkan kepada pengguna. Jika atribut ini tidak disetel, set label untuk aplikasi secara keseluruhan akan digunakan (lihat atribut label dari elemen <application>).

Label layanan — baik ditetapkan di sini atau oleh elemen <application> — adalah juga label default untuk semua filter intent layanan (lihat elemen <intent-filter> atribut label).

Label harus ditetapkan sebagai referensi untuk sumber daya string, sehingga bisa dilokalkan seperti string lainnya dalam antarmuka pengguna. Namun, agar Anda lebih mudah saat mengembangkan aplikasi, label Anda dapat disetel sebagai string mentah.

android:name
Nama subkelas Service yang mengimplementasikan layanan. Ini harus nama class yang memenuhi syarat (seperti, "com.example.project.RoomService"). Namun, sebagai penyingkat, jika karakter pertama dari nama tersebut adalah titik (misalnya, ".RoomService"), itu ditambahkan ke nama paket yang ditetapkan dalam elemen <manifest>.

Setelah menerbitkan aplikasi, Anda sebaiknya tidak mengubah nama ini (kecuali jika Anda telah menyetel android:exported="false").

Tidak ada nama default. Namanya harus ditentukan.

android:permission
Nama izin yang harus dimiliki suatu entitas untuk meluncurkan layanan atau mengikatnya. Jika pemanggil startService(), bindService(), atau stopService(), belum diberikan izin ini, metode ini tidak akan berfungsi dan Maksudnya objek tidak akan dikirimkan ke layanan.

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

Untuk informasi selengkapnya tentang izin, lihat bagian Izin dalam pengantar dan dokumen terpisah, Keamanan dan Izin.

android:process
Nama proses di mana layanan akan dijalankan. Biasanya, semua komponen aplikasi berjalan dalam proses default yang dibuat untuk aplikasi tersebut. Itu memiliki nama yang sama dengan paket aplikasi. Elemen <application> atribut process bisa menetapkan default yang berbeda untuk semua komponen. Tetapi komponen dapat mengesampingkan default dengan atribut process miliknya sendiri, yang memungkinkan Anda untuk menyebar aplikasi ke berbagai proses.

Jika nama yang ditetapkan ke atribut ini dimulai dengan titik dua (':'), proses baru, khusus untuk aplikasi, dibuat saat diperlukan dan layanan berjalan dalam proses tersebut. Jika nama proses dimulai dengan karakter huruf kecil, layanan berjalan dalam proses global dari nama tersebut, asalkan memiliki izin untuk melakukannya. Hal ini memungkinkan komponen dalam aplikasi yang berbeda menggunakan proses yang sama, mengurangi penggunaan resource.

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