O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Enviar solicitações de trabalho para o serviço em segundo plano

A lição anterior mostrou como criar uma classe JobIntentService. Esta lição mostra como acionar o JobIntentService para executar uma operação enfileirando o trabalho com uma Intent. Essa Intent pode conter dados para o JobIntentService processar.

Criar e enviar uma solicitação de trabalho para um JobIntentService

Para criar uma solicitação de trabalho e enviá-la a um JobIntentService, crie uma Intent e coloque-a na fila para ser executada chamando enqueueWork(). Opcionalmente, adicione dados à intent (na forma de extras) para o JobIntentService processar. Para ver mais informações sobre como criar intents, leia a seção Como criar uma intent em Intents e filtros de intent.

Os snippets de código a seguir demonstram esse processo:

  1. Crie um novo Intent para JobIntentService chamado 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));
        
  2. 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 da entrada do usuário primeiro, poderá enviar a solicitação a partir de um callback que responda a um clique no botão ou a um gesto semelhante.

Depois de chamar enqueueWork(), o JobIntentService faz o trabalho definido no método onHandleWork() e, em seguida, para.

A próxima etapa é relatar os resultados da solicitação de trabalho de volta à atividade ou fragmento de origem. A próxima lição mostra como fazer isso com um BroadcastReceiver.