Z poprzedniej lekcji dowiesz się, jak utworzyć zajęcia JobIntentService
. Z tej lekcji dowiesz się, jak aktywować zadanie JobIntentService
w celu uruchomienia operacji przez umieszczenie zadań w kolejce za pomocą Intent
.
Intent
może opcjonalnie zawierać dane, które JobIntentService
ma przetworzyć.
Tworzenie i wysyłanie żądania wykonania zadania do usługi JobIntentService
Aby utworzyć żądanie pracy i przesłać je do JobIntentService
, utwórz element Intent
i umieścić go w kole oczekujących zadań, wywołując element enqueueWork()
.
Opcjonalnie możesz dodać dane do intencji (w formie dodatkowych informacji) dla usługi JobIntentService. Więcej informacji o tworzeniu intencji znajdziesz w sekcji dotyczącej tworzenia intencji w artykule Intencje i filtry intencji.
Poniżej znajdziesz fragmenty kodu, które pokazują ten proces:
-
Utwórz nowy
Intent
dlaJobIntentService
o nazwieRSSPullService
.
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));
-
Zadzwoń:
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);
Pamiętaj, że możesz wysłać prośbę o pomoc z dowolnego miejsca w aktywności lub fragmencie. Jeśli na przykład musisz najpierw uzyskać dane wejściowe od użytkownika, możesz wysłać żądanie z połączenia zwrotnego, które reaguje na kliknięcie przycisku lub podobny gest.
Po wywołaniu metody
enqueueWork()
JobIntentService
wykonuje pracę zdefiniowaną w metodzie
onHandleWork()
, a następnie zatrzymuje się.
Następnym krokiem jest przekazanie wyników żądania pracy do pierwotnego działania lub fragmentu. Z następnej lekcji dowiesz się, jak to zrobić, korzystając z narzędzia BroadcastReceiver
.