Na poprzedniej lekcji pokazaliśmy, jak utworzyć
JobIntentService
. Ten
jak wyzwolić
JobIntentService
, aby uruchomić operację
dołączanie zadań do kolejki za pomocą Intent
.
Ta Intent
może
opcjonalnie zawierają dane dla argumentu
JobIntentService
w celu przetworzenia.
Tworzenie i wysyłanie żądania pracy do JobIntentService
Aby utworzyć zadanie służbowe i wysłać je do
JobIntentService
utwórz Intent
i umieść go w kolejce do
zostanie wykonane przez wywołanie
enqueueWork()
Opcjonalnie do intencji (w postaci dodatkowych intencji) możesz dodać dane
JobIntentService do przetworzenia. Więcej informacji o tworzeniu intencji znajdziesz w artykule dotyczącym tworzenia
sekcji intencji w filtrach intencji i intencji.
Fragmenty kodu ilustrują ten proces:
-
Utwórz nowy obiekt
Intent
dla: .JobIntentService
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ń do
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 prośbę o pracę możesz wysłać 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 reagują na kliknięcie przycisku lub podobny gest.
Po połączeniu telefonu
enqueueWork()
,
JobIntentService
wykonuje czynność określoną w swojej
onHandleWork()
, a następnie się zatrzymuje.
Następnym krokiem jest zgłoszenie wyników zadania z powrotem do aktywności źródłowej.
lub Fragment. Na następnej lekcji dowiesz się, jak to zrobić, używając
BroadcastReceiver