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 la tâche en file d'attente avec un 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) que JobIntentService doit traiter. 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 depuis n'importe quel emplacement dans une activité ou un fragment. Par exemple, si vous devez d'abord obtenir des entrées 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 la tâche définie dans sa méthode
onHandleWork()
, puis s'arrête automatiquement.
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
.