La lezione precedente ha mostrato come creare un corso JobIntentService
. Questa
lezione illustra come attivare
JobIntentService
per eseguire un'operazione
accodando il lavoro con un Intent
.
Questa Intent
può facoltativamente contenere dati che deve essere elaborata dalla JobIntentService
.
Crea e invia una richiesta di lavoro a un JobIntentService
Per creare una richiesta di lavoro e inviarla a un
JobIntentService
,
crea un elemento Intent
e accodalo per
l'esecuzione chiamando
enqueueWork()
.
Facoltativamente, puoi aggiungere dati all'intent (sotto forma di extra di intent) in modo che
JobIntentService li elabori. Per saperne di più sulla creazione di intent, consulta la sezione Creazione di un intent in Intent e filtri di intent
I seguenti snippet di codice illustrano questa procedura:
-
Crea un nuovo
Intent
perJobIntentService
chiamatoRSSPullService
.
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 il numero
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 in un'attività o un frammento. Ad esempio, se devi prima ottenere l'input dell'utente, puoi inviare la richiesta da un callback che risponde al clic su un pulsante o a un gesto simile.
Dopo aver chiamato
enqueueWork()
,
JobIntentService
esegue l'operazione definita nel metodo
onHandleWork()
e poi si interrompe automaticamente.
Il passaggio successivo consiste nel segnalare i risultati della richiesta di lavoro all'attività o al frammento di origine. La prossima lezione spiega come eseguire questa operazione con un
BroadcastReceiver
.