In der vorherigen Lektion wurde Ihnen gezeigt,
Klasse JobIntentService. Dieses
erfahren Sie, wie Sie die
JobIntentService zum Ausführen eines Vorgangs
Arbeiten mit einem Intent in die Warteschlange stellen.
Dieser Intent kann
optional Daten für die
JobIntentService.
Arbeitsanfrage erstellen und an JobIntentService senden
Um eine Arbeitsanfrage zu erstellen und an eine
JobIntentService,
eine Intent erstellen und sie in die Warteschlange
ausgeführt werden, indem
enqueueWork()
Optional können Sie dem Intent Daten (in Form von Intent-Extras) für den
JobIntentService zu verarbeiten. Weitere Informationen zum Erstellen von Intents finden Sie im Artikel zum Erstellen eines
Intent-Abschnitt in Intents und Intent-Filter
Die folgenden Code-Snippets veranschaulichen diesen Vorgang:
-
Erstellen Sie ein neues
Intentfür die <ph type="x-smartling-placeholder"></ph>JobIntentServicemit dem NamenRSSPullService.
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));
-
anrufen
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);
Beachten Sie, dass Sie die Arbeitsanfrage von überall in einer Aktivität oder einem Fragment senden können. Wenn Sie beispielsweise zuerst Nutzereingaben erhalten müssen, können Sie die Anfrage über einen Callback senden. die auf einen Schaltflächenklick oder eine ähnliche Bewegung reagiert.
Nach dem Anruf bei
enqueueWork(),
die
JobIntentService führt die in seinem
onHandleWork()-Methode, die dann automatisch beendet wird.
Der nächste Schritt besteht darin, die Ergebnisse der Arbeitsanfrage an die ursprüngliche Aktivität zurückzumelden
oder Fragment. In der nächsten Lektion erfahren Sie, wie Sie dies mit einem
BroadcastReceiver