JobParameters.DequeueWork Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rimuovere dalla coda il successivo in sospeso JobWorkItem da questi jobParameter associati al processo attualmente in esecuzione.
[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
Valori restituiti
Restituisce un nuovo JobWorkItem oggetto se è presente un oggetto in sospeso; in caso contrario, null.
Se viene restituito null, il sistema arresterà anche il processo se tutto il lavoro è stato completato.
Ciò significa che per un'operazione corretta, è necessario chiamare sempre dequeueWork() dopo aver completato un altro lavoro, per verificare la presenza di più lavoro o consentire al sistema di arrestare il processo.
- Attributi
Commenti
Rimuovere dalla coda il successivo in sospeso JobWorkItem da questi jobParameter associati al processo attualmente in esecuzione. La chiamata a questo metodo quando non è disponibile più lavoro e tutto il lavoro precedentemente dequeued è stato completato comporterà l'arresto del processo da parte dell'utente. In JobService#jobFinished(JobParameters, boolean) caso contrario, si rischia di perdere un jobWorkItem imminente che viene accodato contemporaneamente.
Al termine dell'operazione JobWorkItem restituita da questo metodo, è necessario chiamare #completeWork(JobWorkItem) con esso per informare il sistema che si sta eseguendo il lavoro. Il processo non verrà completato fino al completamento di tutte le operazioni non accodate. Tuttavia, non è necessario completare ogni elemento di lavoro restituito prima di deqeueing il successivo - è possibile usare #dequeueWork() più volte prima di completare il lavoro precedente se si desidera elaborare il lavoro in parallelo ed è possibile completare il lavoro in qualsiasi ordine desiderato.
Se il processo viene eseguito fino alla fine del periodo di tempo disponibile prima che tutto il lavoro sia stato completato, si arresterà come di consueto. È necessario restituire true da JobService#onStopJob(JobParameters) per fare in modo che il processo venga riprogrammato e, in questo modo, qualsiasi lavoro in sospeso e rimanente non completato verrà ri-accodato per la successiva esecuzione del processo.
In questo esempio viene illustrato come costruire un jobService che dequeuerà in modo seriale ed elaborarà il lavoro disponibile per esso:
{ }
per android.app.job.JobParameters.dequeueWork().
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.