Sprache

JobParameters.DequeueWork Methode

Definition

Dequeue the next pending JobWorkItem from these JobParameters associated with their currently running job.

[Android.Runtime.Register("dequeueWork", "()Landroid/app/job/JobWorkItem;", "GetDequeueWorkHandler", ApiSince=26)]
public virtual Android.App.Job.JobWorkItem? DequeueWork();
[<Android.Runtime.Register("dequeueWork", "()Landroid/app/job/JobWorkItem;", "GetDequeueWorkHandler", ApiSince=26)>]
abstract member DequeueWork : unit -> Android.App.Job.JobWorkItem
override this.DequeueWork : unit -> Android.App.Job.JobWorkItem

Gibt zurück

Gibt einen neuen JobWorkItem Wert zurück, wenn eine aussteht, andernfalls NULL. Wenn NULL zurückgegeben wird, beendet das System auch den Auftrag, wenn alle Arbeiten ebenfalls abgeschlossen wurden. (Dies bedeutet, dass Sie für den korrekten Vorgang immer dequeueWork() aufrufen müssen, nachdem Sie andere Arbeiten abgeschlossen haben, um entweder nach mehr Arbeit zu suchen oder dem System das Beenden des Auftrags zu ermöglichen.)

Attribute

Hinweise

Dequeue the next pending JobWorkItem from these JobParameters associated with their currently running job. Das Aufrufen dieser Methode, wenn keine weitere Arbeit verfügbar ist und alle zuvor dequeuierten Arbeiten abgeschlossen wurden, führt dazu, dass das System den Auftrag für Sie beendet – Sie sollten sich nicht selbst aufrufen JobService#jobFinished(JobParameters, boolean) (andernfalls riskieren Sie, dass ein bevorstehendes JobWorkItem-Objekt verloren geht, das gleichzeitig abgefragt wird).

Nachdem Sie die JobWorkItem von dieser Methode zurückgegebene Methode abgeschlossen haben, müssen Sie es aufrufen #completeWork(JobWorkItem) , um das System darüber zu informieren, dass Sie die Ausführung der Arbeit abgeschlossen haben. Der Auftrag wird erst abgeschlossen, wenn alle dequeuierten Arbeiten abgeschlossen wurden. Sie müssen jedoch nicht jede zurückgegebene Arbeitsaufgabe abschließen, bevor Sie die nächste aufgabe aufheben . Sie können mehrere Male verwenden #dequeueWork() , bevor Sie vorherige Arbeiten abschließen, wenn Sie die Arbeit parallel verarbeiten möchten, und Sie können die Arbeit in der gewünschten Reihenfolge abschließen.

Wenn der Auftrag bis zum Ende des verfügbaren Zeitraums ausgeführt wird, bevor alle Arbeiten abgeschlossen wurden, wird er normal beendet. Sie sollten "true JobService#onStopJob(JobParameters) " zurückgeben, damit der Auftrag neu geplant wird. Dadurch werden alle ausstehenden und verbleibenden nicht abgeschlossenen Arbeiten bei der nächsten Ausführung des Auftrags erneut in die Warteschlange gestellt.

In diesem Beispiel wird gezeigt, wie Sie einen JobService erstellen, der die für ihn verfügbaren Arbeit fortlaufend dequeue und verarbeitet:

{

Java Dokumentation für android.app.job.JobParameters.dequeueWork().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: