La lezione precedente ha mostrato come creare un corso JobIntentService
. Questa
lezione mostra come attivare
JobIntentService
per eseguire un'operazione
accodando il lavoro con un Intent
.
Questo Intent
può
contenere facoltativamente dati che
JobIntentService
deve elaborare.
crea e invia una richiesta di lavoro a JobIntentService
Per creare una richiesta di lavoro e inviarla a un
JobIntentService
,
crea un Intent
e mettilo in coda per
l'esecuzione chiamando
enqueueWork()
.
Se vuoi, puoi aggiungere dati all'intent (sotto forma di extra intent) da elaborare da parte di JobIntentService. Per ulteriori informazioni sulla creazione di intent, leggi la sezione Creazione di un intento in Intent e filtri intent.
I seguenti snippet di codice mostrano questa procedura:
-
Crea un nuovo
Intent
per ilJobIntentService
denominatoRSSPullService
.
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));
-
Chiama
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);
Tieni presente che puoi inviare la richiesta di lavoro da qualsiasi punto di un'attività o di un frammento. Ad esempio, se devi prima ottenere un input dell'utente, puoi inviare la richiesta da un callback che risponde a un clic su un pulsante o a un gesto simile.
Una volta chiamata
enqueueWork()
,
JobIntentService
esegue il lavoro definito nel suo
onHandleWork()
metodo e poi si arresta.
Il passaggio successivo consiste nel segnalare i risultati della richiesta di lavoro all'attività o al frammento di origine. La prossima lezione ti mostrerà come eseguire questa operazione con un BroadcastReceiver
.