Stany pracy
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W ciągu swojego działania usługa State
przechodzi szereg zmian.
Jednorazowe stany pracy
W przypadku żądania służbowego one-time
praca zaczyna się od stanu ENQUEUED
.
W stanie ENQUEUED
Twoje zadanie może zostać uruchomione, gdy tylko zostaną spełnione wymagania dotyczące czasu Constraints
i początkowego opóźnienia. Następnie przechodzi do stanu RUNNING
, a w zależności od wyniku pracy może przenieść się do SUCCEEDED
, FAILED
lub z powrotem do ENQUEUED
, jeśli wynik to retry
. Zadanie można anulować w dowolnym momencie procesu. Spowoduje to przejście do stanu CANCELLED
.
Rysunek 1 przedstawia życie jednorazowej pracy i wydarzeń, które mogą ją zmienić.

Rysunek 1. Schemat stanu pracy jednorazowej.
SUCCEEDED
, FAILED
i CANCELLED
reprezentują stan końcowy na potrzeby tej pracy. Jeśli Twoje zadanie znajduje się w którymś z tych stanów, WorkInfo.State.isFinished()
zwraca wartość „true”.
Stany okresowe pracy
Stany powodzenia i niepowodzenia dotyczą tylko pracy jednorazowej i łańcuchowej.
W przypadku pracy okresowej występuje tylko 1 stan końcowy: CANCELLED
. Dzieje się tak, ponieważ praca okresowa
nigdy się nie kończy. Po każdym uruchomieniu jest on ustawiany na nowo niezależnie od wyniku. Rysunek 2 przedstawia schemat stanu skondensowanego dla pracy okresowej.

Rysunek 2. Schemat stanu pracy okresowej.
Stan zablokowania
Istnieje jeden stan końcowy, o którym jeszcze nie wspominaliśmy, a to BLOCKED
. Dotyczy to utworów administrowanych w ramach serii lub łańcucha utworów. Łańcuchy zadań i ich diagram stanu zostały opisane w sekcji Praca z łańcuchami.
Dalsze kroki
Z sekcji Zarządzanie pracą dowiesz się więcej o zarządzaniu postępem pracy i monitorowaniu go.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]