W poprzedniej lekcji pokazaliśmy, jak utworzyć zajęcia JobIntentService
. Z tej lekcji dowiesz się, jak uruchomić JobIntentService
, aby uruchomić operację, umieszczając ją w kolejce z elementem Intent
.
Intent
może opcjonalnie zawierać dane do przetworzenia przez JobIntentService
.
Tworzenie i wysyłanie żądania służbowego do usługi JobIntentService
Aby utworzyć żądanie robocze i wysłać je do JobIntentService
, utwórz Intent
i umieść je w kolejce do wykonania, wywołując
enqueueWork()
.
Opcjonalnie możesz dodać dane do intencji (w postaci dodatków do intencji), którą ma przetworzyć usługa JobIntentService. Więcej informacji o tworzeniu intencji znajdziesz w sekcji Tworzenie intencji w artykule Intencje i filtry intencji
Poniższe fragmenty kodu ilustrują ten proces:
-
Utwórz nowy element
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);
Zwróć uwagę, że możesz wysłać żądanie pracy z dowolnego miejsca w aktywności lub fragmencie. Jeśli na przykład chcesz najpierw uzyskać dane wejściowe użytkownika, możesz wysłać żądanie z wywołania zwrotnego, które reaguje na kliknięcie przycisku lub podobny gest.
Gdy wywołasz
enqueueWork()
,
JobIntentService
wykona pracę zdefiniowaną w swojej metodzie
onHandleWork()
, a następnie zatrzyma się samodzielnie.
Następnym krokiem jest zgłoszenie wyników żądania pracy do źródłowej aktywności lub fragmentu. Z następnej lekcji dowiesz się, jak to zrobić za pomocą BroadcastReceiver
.