Arka plan hizmeti oluşturma
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
IntentService
sınıfı, koşu için basit bir yapı sağlar.
tek bir arka plan iş parçacığı üzerinde işlem yapmak anlamına gelir. Bu sayede uzun süreli işlemler yapılabilir.
hem de kullanıcı arayüzünüzün yanıt verme süresini etkilemez. Ayrıca,
IntentService
, kullanıcı arayüzü yaşam döngüsü etkinliklerinin çoğundan etkilenmez.
AsyncTask
ürününün kapatılacağı durumlarda çalışmaya devam eder.
IntentService
ile ilgili bazı sınırlamalar vardır:
-
Kullanıcı arayüzünizle doğrudan etkileşime geçemez. Sonuçlarını arayüze koymak için
bir
Activity
adresine göndermeniz gerekiyor.
-
İş istekleri sırayla çalışır. Bir işlem
IntentService
ve başka bir istek gönderirseniz istek,
ilk işlem tamamlandı.
-
IntentService
üzerinde çalışan bir işlem kesintiye uğratılamaz.
Ancak çoğu durumda tercih edilen yöntem IntentService
şeklindedir
basit arka plan işlemleri.
Bu kılavuzda, aşağıdaki işlemleri nasıl yapacağınız gösterilmektedir:
Gelen niyetleri işleme
Uygulamanıza bir IntentService
bileşeni oluşturmak için şu özelliklere sahip bir sınıf tanımlayın:
IntentService
alanını genişlettiğinde ve bu anahtarın içinde
onHandleIntent()
politikasını geçersiz kılar. Örnek:
Kotlin
class RSSPullService : IntentService(RSSPullService::class.simpleName)
override fun onHandleIntent(workIntent: Intent) {
// Gets data from the incoming Intent
val dataString = workIntent.dataString
...
// Do work here, based on the contents of dataString
...
}
}
Java
public class RSSPullService extends IntentService {
@Override
protected void onHandleIntent(Intent workIntent) {
// Gets data from the incoming Intent
String dataString = workIntent.getDataString();
...
// Do work here, based on the contents of dataString
...
}
}
Örneğin, normal bir Service
bileşeninin diğer geri çağırmalarının
onStartCommand()
, şunlar tarafından otomatik olarak çağrılır:
IntentService
. IntentService
içinde
bu geri çağırmaları geçersiz kılıyor.
IntentService
oluşturma hakkında daha fazla bilgi edinmek için bkz.
IntentService sınıfı hakkında daha fazla bilgi edinin.
Manifest'te intent hizmetini tanımlayın.
IntentService
öğesi için uygulama manifestinize de giriş yapılması gerekir.
Bu girişi bir
<service>
.
öğesi olan
<application>
öğesi:
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
...
<!--
Because android:exported is set to "false",
the service is only available to this app.
-->
<service
android:name=".RSSPullService"
android:exported="false"/>
...
</application>
android:name
özelliği
IntentService
.
Not:
<service>
.
öğesi, şunu içermez:
amaç filtresini kullanın. İlgili içeriği oluşturmak için kullanılan
Hizmete iş istekleri gönderen Activity
,
açık Intent
olduğundan filtre gerekmez. Bu ayrıca
sadece aynı uygulamadaki bileşenler veya
hizmete erişebileceğinden emin olun.
Artık temel IntentService
sınıfına sahip olduğunuza göre çalışma istekleri gönderebilirsiniz
ona Intent
nesne ile ekliyorum. Bu nesneleri oluşturma prosedürü
ve IntentService
cihazınıza göndermek için bkz.
İş isteklerini arka plan hizmetine gönderin.
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: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# Create a background service\n\n| **Note:** `IntentService` will not work correctly when the application is in the background on the latest versions of Android. This page is left here as reference for legacy apps only. See the [guide to background processing\n| on Android](/guide/background) for recommended solutions.\n\n\nThe [IntentService](/reference/android/app/IntentService) class provides a straightforward structure for running\nan operation on a single background thread. This allows it to handle long-running operations\nwithout affecting your user interface's responsiveness. Also, an\n[IntentService](/reference/android/app/IntentService) isn't affected by most user interface lifecycle events, so it\ncontinues to run in circumstances that would shut down an [AsyncTask](/reference/android/os/AsyncTask)\n\n\nAn [IntentService](/reference/android/app/IntentService) has a few limitations:\n\n- It can't interact directly with your user interface. To put its results in the UI, you have to send them to an [Activity](/reference/android/app/Activity).\n- Work requests run sequentially. If an operation is running in an [IntentService](/reference/android/app/IntentService), and you send it another request, the request waits until the first operation is finished.\n- An operation running on an [IntentService](/reference/android/app/IntentService) can't be interrupted.\n\n\nHowever, in most cases an [IntentService](/reference/android/app/IntentService) is the preferred way to perform\nsimple background operations.\n\n\nThis guide shows you how to do the following things:\n\n- Create your own subclass of [IntentService](/reference/android/app/IntentService).\n- Create the required callback method [onHandleIntent()](/reference/android/app/IntentService#onHandleIntent(android.content.Intent)).\n- Define the [IntentService](/reference/android/app/IntentService) in your manifest file.\n\nHandle incoming intents\n-----------------------\n\n\nTo create an [IntentService](/reference/android/app/IntentService) component for your app, define a class that\nextends [IntentService](/reference/android/app/IntentService), and within it, define a method that\noverrides [onHandleIntent()](/reference/android/app/IntentService#onHandleIntent(android.content.Intent)). For example: \n\n### Kotlin\n\n```kotlin\nclass RSSPullService : IntentService(RSSPullService::class.simpleName)\n\n override fun onHandleIntent(workIntent: Intent) {\n // Gets data from the incoming Intent\n val dataString = workIntent.dataString\n ...\n // Do work here, based on the contents of dataString\n ...\n }\n}\n```\n\n### Java\n\n```java\npublic class RSSPullService extends IntentService {\n @Override\n protected void onHandleIntent(Intent workIntent) {\n // Gets data from the incoming Intent\n String dataString = workIntent.getDataString();\n ...\n // Do work here, based on the contents of dataString\n ...\n }\n}\n```\n\n\nNotice that the other callbacks of a regular [Service](/reference/android/app/Service) component, such as\n[onStartCommand()](/reference/android/app/Service#onStartCommand(android.content.Intent, int, int)) are automatically invoked by\n[IntentService](/reference/android/app/IntentService). In an [IntentService](/reference/android/app/IntentService), you should avoid\noverriding these callbacks.\n\nTo learn more about creating an `IntentService`, see [Extending the\nIntentService class](/guide/components/services#ExtendingIntentService).\n\nDefine the intent service in the manifest\n-----------------------------------------\n\n\nAn [IntentService](/reference/android/app/IntentService) also needs an entry in your application manifest.\nProvide this entry as a\n[\u003cservice\u003e](/guide/topics/manifest/service-element)\nelement that's a child of the\n[\u003capplication\u003e](/guide/topics/manifest/application-element) element: \n\n```xml\n \u003capplication\n android:icon=\"@drawable/icon\"\n android:label=\"@string/app_name\"\u003e\n ...\n \u003c!--\n Because android:exported is set to \"false\",\n the service is only available to this app.\n --\u003e\n \u003cservice\n android:name=\".RSSPullService\"\n android:exported=\"false\"/\u003e\n ...\n \u003c/application\u003e\n```\n\n\nThe attribute `android:name` specifies the class name of the\n[IntentService](/reference/android/app/IntentService).\n\n\nNotice that the\n[\u003cservice\u003e](/guide/topics/manifest/service-element)\nelement doesn't contain an\n[intent filter](/guide/components/intents-filters). The\n[Activity](/reference/android/app/Activity) that sends work requests to the service uses an\nexplicit [Intent](/reference/android/content/Intent), so no filter is needed. This also\nmeans that only components in the same app or other applications with the\nsame user ID can access the service.\n\n\nNow that you have the basic [IntentService](/reference/android/app/IntentService) class, you can send work requests\nto it with [Intent](/reference/android/content/Intent) objects. The procedure for constructing these objects\nand sending them to your [IntentService](/reference/android/app/IntentService) is described in\n[Send work requests to the background service](/training/run-background-service/send-request)."]]