Stati di lavoro
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Il lavoro subisce una serie di State
modifiche nel corso della sua durata.
Stati del lavoro una tantum
Per una richiesta di lavoro one-time
, il tuo lavoro inizia in uno stato ENQUEUED
.
Nello stato ENQUEUED
, il tuo lavoro può essere eseguito non appena vengono soddisfatti i requisiti relativi a
Constraints
e alla tempistica di ritardo iniziale. Da lì passa allo stato RUNNING
e, a seconda del risultato, può passare a SUCCEEDED
, FAILED
o eventualmente tornare aENQUEUED
se il risultato è retry
. In qualsiasi
momento del processo, il lavoro può essere annullato, a quel punto il lavoro passerà allo stato
CANCELLED
.
La figura 1 illustra il ciclo di vita del lavoro una tantum, con gli eventi che potrebbero portarlo a un altro stato.

Figura 1. Diagramma di stato per il lavoro una tantum.
SUCCEEDED
, FAILED
e CANCELLED
rappresentano tutti uno stato del terminale per questa operazione. Se il tuo lavoro si trova in uno di questi stati,
WorkInfo.State.isFinished()
restituisce true.
Stati dei lavori periodici
Gli stati Successo e Non riuscito si applicano solo al lavoro una tantum e
concatenato.
Per le operazioni periodiche è disponibile un solo stato di terminale, CANCELLED
. Questo perché il lavoro periodico
non ha mai fine. Dopo ogni esecuzione, questa viene ripianificata, indipendentemente dal risultato. La Figura
2 mostra il diagramma dello stato condensato per il lavoro periodico.

Figura 2. Diagramma di stato per il lavoro periodico.
Stato bloccato
C'è un ultimo stato che non abbiamo ancora menzionato, ovvero BLOCKED
. Questo
stato si applica alle opere orchestrate in una serie o catena di opere. Le catene di lavoro e il relativo diagramma di stato sono trattati nell'articolo Lavoro di china.
Passaggi successivi
In Gestione del lavoro,
scoprirai di più su come gestire e monitorare l'avanzamento del lavoro.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Work states\n\nWork goes through a series of [`State`](/reference/androidx/work/WorkInfo.State)\nchanges over its lifetime.\n\nOne-time work states\n--------------------\n\nFor a\n[`one-time`](/topic/libraries/architecture/workmanager/how-to/define-work#schedule_one-time_work)\nwork request, your work begins in an\n[`ENQUEUED`](/reference/androidx/work/WorkInfo.State#ENQUEUED) state.\n\nIn the `ENQUEUED` state, your work is eligible to run as soon as its\n[`Constraints`](/reference/androidx/work/Constraints) and initial delay timing\nrequirements are met. From there it moves to a\n[`RUNNING`](/reference/androidx/work/WorkInfo.State#RUNNING) state and then\ndepending on the outcome of the work it may move to\n[`SUCCEEDED`](/reference/androidx/work/WorkInfo.State#SUCCEEDED),\n[`FAILED`](/reference/androidx/work/WorkInfo.State#FAILED), or possibly back to\n`ENQUEUED` if the result is\n[`retry`](/reference/androidx/work/ListenableWorker.Result#retry()). At any\npoint in the process, work can be cancelled, at which point it will move to the\n[`CANCELLED`](/reference/androidx/work/WorkInfo.State#CANCELLED) state.\n\nFigure 1 illustrates the life of one-time work, with the events that may take it to another state.\n\n**Figure 1.** State diagram for one-time work.\n\n`SUCCEEDED`, `FAILED` and `CANCELLED` all represent a terminal state for this\nwork. If your work is in any of these states,\n[`WorkInfo.State.isFinished()`](/reference/androidx/work/WorkInfo.State#isFinished())\nreturns true.\n\nPeriodic work states\n--------------------\n\nSuccess and failed states apply only to one-time and\n[chained work](/topic/libraries/architecture/workmanager/how-to/chain-work).\nFor [periodic work](/topic/libraries/architecture/workmanager/how-to/define-work#schedule_periodic_work),\nthere is only one terminal state, `CANCELLED`. This is because periodic work\nnever ends. After each run, it's rescheduled, regardless of the result. Figure\n2 depicts the condensed state diagram for periodic work.\n\n**Figure 2.** State diagram for periodic work.\n\nBlocked state\n-------------\n\nThere is one final state we haven't mentioned yet, and that is `BLOCKED`. This\nstate applies to work that is orchestrated in a series, or chain of work. Work\nchains, and their state diagram, are covered in\n[Chaining work](/topic/libraries/architecture/workmanager/how-to/chain-work).\n\nNext Steps\n==========\n\nIn [Managing work](/topic/libraries/architecture/workmanager/how-to/managing-work),\nyou'll learn more about how to manage and monitor the progress of your work."]]