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
Intent
für die <ph type="x-smartling-placeholder"></ph>JobIntentService
mit 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