A lição anterior mostrou como criar um
classe JobIntentService
. Isso
desta lição mostra como acionar
JobIntentService
para executar uma operação
enfileirando o trabalho com um Intent
.
Esse Intent
pode
podem conter dados para o
JobIntentService
para processar.
Criar e enviar uma solicitação de trabalho para um JobIntentService
Para criar uma solicitação de trabalho e enviá-la para um
JobIntentService
,
crie uma Intent
e a enfileire para
ser executado chamando
enqueueWork()
Opcionalmente, você pode adicionar dados à intent (na forma de extras da intent) para o
JobIntentService a ser processado. Para mais informações sobre como criar intents, leia o módulo
seção de intent em Intents e filtros de intent
Os snippets de código a seguir demonstram esse processo:
-
Crie um novo
Intent
para oJobIntentService
chamadoRSSPullService
.
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));
-
Chamar
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);
Você pode enviar a solicitação de trabalho de qualquer lugar em uma atividade ou fragmento. Por exemplo, se você precisar receber a entrada do usuário primeiro, poderá enviar a solicitação de um callback que responde a um clique em um botão ou a um gesto semelhante.
Depois de chamar
enqueueWork()
,
JobIntentService
faz o trabalho definido no
onHandleWork()
e, em seguida, para sozinho.
A próxima etapa é relatar os resultados da solicitação de trabalho de volta à atividade de origem
ou fragmento. A próxima lição mostra como fazer isso com uma
BroadcastReceiver
: