- söz dizimi:
<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>
- içerdiği:
<application>
- şunları içerebilir:
<intent-filter>
<meta-data>
- description:
- Bir hizmeti, uygulamanın bileşenlerinden biri olan
Service
alt sınıfı olarak tanımlar. Etkinliklerden farklı olarak hizmetlerin görsel kullanıcı arayüzü yoktur. Uzun süren arka plan işlemlerini veya başka uygulamalar tarafından çağrılabilen zengin bir iletişim API'sini uygulamak için kullanılırlar.Tüm hizmetler, manifest dosyasında
<service>
öğeleriyle temsil edilmelidir. Bildirilmemiş olanlar sistem tarafından görülmez ve hiçbir zaman çalışmaz.Not: Android 8.0 (API düzeyi 26) ve sonraki sürümlerde, uygulamanızın arka planda çalışırken yapabileceği işlemler sistem tarafından sınırlandırılır. Daha fazla bilgi için arka planda yürütme sınırları ve arka planda konum sınırları konusunu ele alan kılavuzlara göz atın.
- özellikler:
android:description
- Hizmeti açıklayan, kullanıcı tarafından okunabilir bir dize. Açıklama, bir dize kaynağına başvuru olarak ayarlanır. Böylece, kullanıcı arayüzündeki diğer dizeler gibi yerelleştirilebilir.
android:directBootAware
Hizmetin Doğrudan Başlatma duyarlı olup olmadığı, yani kullanıcı cihazın kilidini açmadan önce çalışıp çalışamayacağı.
Not: Doğrudan Başlatma sırasında, uygulamanızdaki bir hizmet yalnızca cihazla korunan depolama alanında depolanan verilere erişebilir.
Varsayılan değer:
"false"
.android:enabled
- Hizmetin sistem tarafından örneklenip gösterilemeyeceği. Mümkünse
"true"
, mümkün değilse"false"
olur. Varsayılan değer"true"
'tir.<application>
öğesinin, hizmetler dahil tüm uygulama bileşenleri için geçerli olan kendienabled
özelliği vardır. Hizmetin etkinleştirilebilmesi için hem<application>
hem de<service>
özelliklerinin her ikisi de varsayılan olarak"true"
olmalıdır. İkisinden biri"false"
ise hizmet devre dışıdır ve örneklenemez. android:exported
- Diğer uygulamaların bileşenlerinin hizmeti çağırıp çağıramayacağı veya hizmetle etkileşimde bulunup bulunamayacağı. Yapabilirlerse
"true"
puan, alamazlarsa"false"
. Değer"false"
olduğunda yalnızca aynı uygulamanın veya uygulamaların yalnızca aynı kullanıcı kimliğine sahip bileşenleri hizmeti başlatabilir veya ona bağlanabilir.Varsayılan değer, hizmetin intent filtreleri içerip içermediğine bağlıdır. Herhangi bir filtre olmadığında, filtre yalnızca tam sınıf adı belirtilerek çağrılabilir. Diğer kullanıcılar sınıf adını bilmediğinden, bu, hizmetin yalnızca uygulama içi kullanıma yönelik olduğu anlamına gelir. Dolayısıyla bu örnekte, varsayılan değer
"false"
'tir. Diğer yandan, en az bir filtrenin olması hizmetin harici kullanım için tasarlandığı anlamına gelir. Bu nedenle varsayılan değer"true"
'dir.Bu özellik, bir hizmetin diğer uygulamalarla karşılaşmasını sınırlamanın tek yolu değildir. Hizmetle etkileşim kurabilecek harici varlıkları sınırlamak için de bir izin kullanabilirsiniz.
permission
özelliğine bakın. android:foregroundServiceType
Hizmetin, belirli bir kullanım alanını karşılayan bir ön plan hizmeti olduğunu belirtir. Örneğin,
"location"
ön plan hizmet türü, genellikle cihaz konumuyla ilgili kullanıcı tarafından başlatılan bir işlemi sürdürmek için bir uygulamanın cihazın mevcut konumunu aldığını belirtir.Belirli bir hizmete birden fazla ön plan hizmet türü atayabilirsiniz.
android:icon
- Hizmeti temsil eden bir simge Bu özellik, resim tanımını içeren çekilebilir bir kaynağa referans olarak ayarlanır.
Ayarlanmazsa bunun yerine uygulamanın tamamı için belirtilen simge kullanılır.
<application>
öğesininicon
özelliğine bakın.Hizmetin simgesi, ister burada ister
<application>
öğesi tarafından ayarlanmış olsun, aynı zamanda tüm hizmetin intent filtreleri için varsayılan simgedir.<intent-filter>
öğesininicon
özelliğine bakın. android:isolatedProcess
"true"
olarak ayarlanırsa bu hizmet, sistemin geri kalanından izole edilmiş özel bir işlem altında çalışır ve bunun için kendi izni yoktur. Bununla tek iletişim, bağlama ve başlatma ile Service API üzerinden olur.android:label
- Hizmet için kullanıcı tarafından okunabilir bir ad.
Bu özellik ayarlanmazsa bunun yerine uygulamanın tamamı için ayarlanan etiket kullanılır.
<application>
öğesininlabel
özelliğine bakın.Hizmetin etiketi, ister burada ister
<application>
öğesi tarafından ayarlanmış olsun, aynı zamanda tüm hizmetin intent filtreleri için varsayılan etikettir.<intent-filter>
öğesininlabel
özelliğine bakın.Bu etiket, dize kaynağına başvuru olarak ayarlanır. Böylece, kullanıcı arayüzündeki diğer dizeler gibi yerelleştirilebilir. Ancak, uygulamayı geliştirirken kolaylık sağlaması için ham dize olarak da ayarlanabilir.
android:name
- Hizmeti uygulayan
Service
alt sınıfının adı. Bu,"com.example.project.RoomService"
gibi tam nitelikli bir sınıf adıdır. Bununla birlikte, kısaltma olarak adın ilk karakteri".RoomService"
gibi noktaysa<manifest>
öğesinde belirtilen paket adına eklenir.Uygulamanızı yayınladıktan sonra,
android:exported="false"
özelliğini ayarlamadığınız sürece bu adı değiştirmeyin.Varsayılan ayar yoktur. Ad belirtilmelidir.
android:permission
- Bir varlığın hizmeti başlatmak veya hizmete bağlanmak için ihtiyaç duyduğu iznin adı.
startService()
,bindService()
veyastopService()
çağrılarını yapan bir kişiye bu izin verilmezse yöntem çalışmaz veIntent
nesnesi hizmete teslim edilmez.Bu özellik ayarlanmazsa
<application>
öğesininpermission
özelliği tarafından ayarlanan izin hizmete uygulanır. Bu iki özellik de ayarlanmazsa hizmet bir izinle korunmaz.İzinler hakkında daha fazla bilgi edinmek için uygulama manifestine genel bakış bölümündeki İzinler bölümüne ve Güvenlik kurallarına bakın.
android:process
- Hizmetin çalıştırıldığı sürecin adı. Normalde bir uygulamanın tüm bileşenleri, uygulama için oluşturulan varsayılan işlemde çalışır. Uygulama paketiyle aynı ada sahiptir.
<application>
öğesininprocess
özelliği, tüm bileşenler için farklı bir varsayılan ayarlayabilir. Ancak bir bileşen, varsayılan değeri kendiprocess
özelliğiyle geçersiz kılarak uygulamanızı birden fazla işleme yayabilmenizi sağlar.Bu özelliğe atanan ad, iki nokta üst üste (
:
) ile başlıyorsa ihtiyaç duyulduğunda uygulamaya özel yeni bir süreç oluşturulur ve hizmet bu işlemde çalışır.İşlem adı küçük harfle başlarsa hizmet, bunu yapma izni olması koşuluyla o adda genel bir işlemde çalışır. Bu şekilde farklı uygulamalardaki bileşenlerin bir işlemi paylaşmasına izin verilir ve kaynak kullanımı azalır.
- ayrıca bakın:
<application>
<activity>
- tanıtıldığı yer:
- API düzeyi 1
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2024-01-16 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"İhtiyacım olan bilgiler yok"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Çok karmaşık / çok fazla adım var"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Güncel değil"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Çeviri sorunu"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Örnek veya kod sorunu"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Diğer"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Anlaması kolay"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Sorunumu çözdü"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Diğer"
}]