- 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 atributenabled
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 atributicon
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 atributlabel
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()
, ataustopService()
tidak diberi izin ini, metode ini tidak akan berfungsi danIntent
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 informasi selengkapnya tentang izin, lihat Izin di ringkasan manifes aplikasi, 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 atributprocess
-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:
- API level 1
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-08-22 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2024-08-22 UTC."],[],[]]