処理の状態
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
処理の過程で、一連の State
の変更が発生します。
1 回限りの処理の状態
one-time
の WorkRequest の場合、処理は ENQUEUED
状態から開始します。
ENQUEUED
状態では、Constraints
と初期遅延のタイミングの要件が満たされ次第、処理が実行可能になります。そこから RUNNING
状態に遷移し、処理の結果に応じて、SUCCEEDED
、FAILED
に遷移するか、結果が retry
の場合は ENQUEUED
に戻ります。プロセスのどの時点でも処理をキャンセルできます。キャンセルした時点で、処理は CANCELLED
状態に遷移します。
図 1 は、1 回限りの処理のライフを示しています。図に示すように、イベントの結果によって処理が他の状態に遷移します。

図 1:1 回限りの処理の状態遷移図
SUCCEEDED
、FAILED
、CANCELLED
はすべて、この処理の終了状態を表します。処理がこれらのいずれかの状態にある場合、WorkInfo.State.isFinished()
は true を返します。
定期的な処理の状態
成功と失敗の状態は、1 回限りの、連結された処理にのみ適用されます。定期的な処理の場合、終了状態は CANCELLED
の 1 つだけです。これは、定期的な処理が終了することはないためです。処理の結果に関係なく、毎回実行後に処理のスケジュールが再設定されます。図 2 は、定期的な処理の簡略な状態遷移図を示しています。

図 2. 定期的な処理の状態遷移図。
ブロック状態
最後に、最終状態の一つである BLOCKED
について説明します。この状態は、一連の処理、つまり処理チェーンにまとめられた処理に適用されます。処理チェーンとその状態遷移図については、処理の連結をご覧ください。
次の手順
処理の管理では、処理の進行状況を管理およびモニタリングする方法について詳しく学習します。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 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."]]