- 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 atributenabled
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>
atributicon
).Ikon layanan — baik ditetapkan di sini atau oleh elemen
<application>
— adalah juga ikon default untuk semua filter intent layanan (lihat elemen<intent-filter>
atributicon
). 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>
atributlabel
).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()
, ataubindService()
, belum diberikan izin ini, metode ini tidak akan berfungsi dan Maksudnya objek tidak akan dikirimkan ke layanan.stopService()
Jika atribut ini tidak disetel, izin yang ditetapkan oleh elemen
<application>
atributpermission
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>
atributprocess
bisa menetapkan default yang berbeda untuk semua komponen. Tetapi komponen dapat mengesampingkan default dengan atributprocess
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
Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2019-12-27 UTC.