حالات العمل
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمر العمل بسلسلة من تغييرات State
على مدار حياته.
حالات العمل لمرة واحدة
بالنسبة إلى طلب العمل على
one-time
،
يبدأ عملك بحالة ENQUEUED
.
في حالة ENQUEUED
، يكون عملك مؤهلاً للعرض فور استيفاء Constraints
ومتطلبات توقيت التأخير الأولي. ومن هناك، تنتقل إلى حالة
RUNNING
، ثم
اعتمادًا على نتيجة العمل، قد تنتقل إلى
SUCCEEDED
،
FAILED
، أو ربما إلى
ENQUEUED
إذا كانت النتيجة
retry
. يمكن إلغاء العمل في أي مرحلة
من مراحل العملية، وبعد ذلك سينتقل إلى الحالة
CANCELLED
.
يوضح الشكل 1 حياة العمل لمرة واحدة، مع الأحداث التي قد تنقله إلى حالة أخرى.

الشكل 1. مخطط حالة للعمل لمرة واحدة.
تمثّل كل من SUCCEEDED
وFAILED
وCANCELLED
حالة طرفية لهذا العمل. وإذا كان عملك في أي من هذه الحالات، ستعرض
WorkInfo.State.isFinished()
صحيحًا.
حالات العمل الدورية
تنطبق حالات النجاح والفشل فقط على
العمل المتسلسل لمرة واحدة.
بالنسبة للعمل الدوري،
هناك حالة طرفية واحدة فقط، وهي CANCELLED
. ذلك لأن العمل الدوري
لا ينتهي أبدًا. بعد كل جولة، تتم إعادة جدولتها، بغض النظر عن النتيجة. يوضّح الشكل 2 مخطط الحالة المضغوط للعمل الدوري.

الشكل 2. مخطط حالة للعمل الدوري.
حالة الحظر
هناك حالة أخيرة لم نذكرها بعد، وهي "BLOCKED
". تنطبق هذه الحالة على العمل الذي يتم تنسيقه في سلسلة أو سلسلة عمل. يتم تناول سلاسل
العمل ومخطط الحالة الخاص بها في
أعمال السلسلة.
الخطوات التالية
في إدارة العمل،
ستتعرف على المزيد حول كيفية إدارة تقدم عملك ومراقبته.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]