La lezione precedente ti ha mostrato come creare
JobIntentService
. Questo
ti mostra come attivare
JobIntentService
per eseguire un'operazione
accodare il lavoro con un Intent
.
Questa Intent
può
facoltativamente contenere i dati relativi
JobIntentService
per elaborare.
crea e invia una richiesta di lavoro a JobIntentService
Per creare una richiesta di lavoro e inviarla a un
JobIntentService
,
crea una Intent
e accodala a
da eseguire richiamando
enqueueWork()
.
Se vuoi, puoi aggiungere dati all'intent (sotto forma di intent extra) per l'intent
JobIntentService da elaborare. Per ulteriori informazioni sulla creazione di intent, leggi la sezione
sezione per intent in Filtri per intent e intent
I seguenti snippet di codice mostrano questa procedura:
-
Crea una nuova
Intent
perJobIntentService
ha 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
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 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
svolge il lavoro definito
onHandleWork()
e si interrompe.
Il passaggio successivo consiste nel segnalare i risultati della richiesta di lavoro all'attività di origine
o Frammento. La prossima lezione ti mostrerà come fare questo con un
BroadcastReceiver
.