La leçon précédente vous a montré comment créer une classe JobIntentService
. Cette leçon vous explique comment déclencher JobIntentService
pour exécuter une opération en mettant en file d'attente une tâche avec Intent
.
Ce Intent
peut éventuellement contenir des données que le JobIntentService
doit traiter.
Créer et envoyer une requête de travail à un JobIntentService
Pour créer une requête de travail et l'envoyer à un JobIntentService
, créez un Intent
et mettez-le en file d'attente en vue de son exécution en appelant
enqueueWork()
.
Vous pouvez éventuellement ajouter des données à l'intent (sous la forme d'extras d'intent) pour que JobIntentService les traite. Pour en savoir plus sur la création d'intents, consultez la section "Créer un intent" dans Intents et filtres d'intents.
Les extraits de code suivants illustrent ce processus:
-
Créez un
Intent
pour leJobIntentService
appeléRSSPullService
.
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));
-
Appeler
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);
Notez que vous pouvez envoyer la requête de travail n'importe où dans une activité ou un fragment. Par exemple, si vous devez d'abord obtenir l'entrée utilisateur, vous pouvez envoyer la requête à partir d'un rappel qui répond à un clic sur un bouton ou à un geste similaire.
Une fois que vous avez appelé
enqueueWork()
,
JobIntentService
effectue le travail défini dans sa méthode
onHandleWork()
, puis s'arrête.
L'étape suivante consiste à signaler les résultats de la requête de travail à l'activité ou au fragment d'origine. La leçon suivante vous explique comment procéder avec un BroadcastReceiver
.