Arka plan hizmetine çalışma istekleri gönderme
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Önceki derste, Arkadaş Bitkiler projesinin
JobIntentService
sınıfı. Bu
Bu derste,
JobIntentService
ile bir işlemi şu tarihe kadar çalıştırın:
işi Intent
ile sıraya koyuyor.
Bu Intent
şunları yapabilir:
isteğe bağlı olarak
İşlenecek JobIntentService
.
İş isteği oluşturma ve JobIntentService'e gönderme
Bir iş isteği oluşturmak ve isteği bir
JobIntentService
bir Intent
oluşturun ve
enqueueWork()
İsteğe bağlı olarak,
JobIntentService'i tıklayın. Amaç oluşturma hakkında daha fazla bilgi için
Niyetler ve Amaç Filtreleri'ndeki intent bölümü
Aşağıdaki kod snippet'leri bu işlemi göstermektedir:
-
Şu öğe için yeni bir
Intent
oluştur:
JobIntentService
, RSSPullService
adlı kişiyi aradı.
Kotlin
/*
* Creates a new Intent to start the RSSPullService
* JobIntentService. Passes a URI in the
* Intent's "data" field.
*/
serviceIntent = Intent().apply {
putExtra("download_url", dataUrl)
}
Java
/*
* Creates a new Intent to start the RSSPullService
* JobIntentService. Passes a URI in the
* Intent's "data" field.
*/
serviceIntent = new Intent();
serviceIntent.putExtra("download_url", dataUrl));
-
Ara:
enqueueWork()
Kotlin
private const val RSS_JOB_ID = 1000
RSSPullService.enqueueWork(context, RSSPullService::class.java, RSS_JOB_ID, serviceIntent)
Java
// Starts the JobIntentService
private static final int RSS_JOB_ID = 1000;
RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);
İş isteğini bir Etkinlik veya Parçada herhangi bir yerden gönderebileceğinizi unutmayın.
Örneğin, önce kullanıcı girişini almanız gerekiyorsa isteği bir geri arama üzerinden gönderebilirsiniz.
bir düğme tıklamasına veya benzer bir harekete yanıt veren bir video reklam içerir.
adlı kişiyi aradığınızda
enqueueWork()
,
JobIntentService
,
onHandleWork()
yöntemini çağırıyor ve daha sonra kendini durduruyor.
Bir sonraki adım, iş talebinin sonuçlarını kaynak Aktiviteye geri bildirmektir
veya Parça. Bir sonraki derste, Arkadaş Bitkiler projesinin
BroadcastReceiver
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,["# Send work requests to the background service\n\n| **Note:** This page is left here as reference for legacy apps only. See the [guide to background processing on Android](/guide/background) for recommended solutions.\n\n\nThe previous lesson showed you how to create a\n[`JobIntentService`](/reference/androidx/core/app/JobIntentService) class. This\nlesson shows you how to trigger the\n[`JobIntentService`](/reference/androidx/core/app/JobIntentService) to run an operation by\nenqueuing work with an [`Intent`](/reference/android/content/Intent).\nThis [`Intent`](/reference/android/content/Intent) can\noptionally contain data for the\n[`JobIntentService`](/reference/androidx/core/app/JobIntentService) to process.\n\nCreate and send a work request to a JobIntentService\n----------------------------------------------------\n\n\nTo create a work request and send it to a\n[`JobIntentService`](/reference/androidx/core/app/JobIntentService),\ncreate an [`Intent`](/reference/android/content/Intent) and enqueue it to\nbe executed by calling [`enqueueWork()`](/reference/androidx/core/app/JobIntentService#enqueuework).\nOptionally you can add data to the intent (in the form of intent extras) for the\nJobIntentService to process. For more information about creating intents, read the Building an\nintent section in [Intents and Intent Filters](/guide/components/intents-filters)\n\n\nThe following code snippets demonstrate this process:\n\n1. Create a new [`Intent`](/reference/android/content/Intent) for the [`JobIntentService`](/reference/androidx/core/app/JobIntentService) called `RSSPullService`. \n\n ### Kotlin\n\n ```kotlin\n /*\n * Creates a new Intent to start the RSSPullService\n * JobIntentService. Passes a URI in the\n * Intent's \"data\" field.\n */\n serviceIntent = Intent().apply {\n putExtra(\"download_url\", dataUrl)\n }\n ```\n\n ### Java\n\n ```java\n /*\n * Creates a new Intent to start the RSSPullService\n * JobIntentService. Passes a URI in the\n * Intent's \"data\" field.\n */\n serviceIntent = new Intent();\n serviceIntent.putExtra(\"download_url\", dataUrl));\n ```\n2. Call [`enqueueWork()`](/reference/androidx/core/app/JobIntentService#enqueuework) \n\n ### Kotlin\n\n ```kotlin\n private const val RSS_JOB_ID = 1000\n RSSPullService.enqueueWork(context, RSSPullService::class.java, RSS_JOB_ID, serviceIntent)\n ```\n\n ### Java\n\n ```java\n // Starts the JobIntentService\n private static final int RSS_JOB_ID = 1000;\n RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);\n ```\n\n\nNotice that you can send the work request from anywhere in an Activity or Fragment.\nFor example, if you need to get user input first, you can send the request from a callback\nthat responds to a button click or similar gesture.\n\n\nOnce you call [`enqueueWork()`](/reference/androidx/core/app/JobIntentService#enqueuework),\nthe [`JobIntentService`](/reference/androidx/core/app/JobIntentService) does the work defined in its\n[`onHandleWork()`](/reference/androidx/core/app/JobIntentService#onHandleWork) method, and then stops itself.\n\n\nThe next step is to report the results of the work request back to the originating Activity\nor Fragment. The next lesson shows you how to do this with a\n[BroadcastReceiver](/reference/android/content/BroadcastReceiver)."]]