Ao longo do ciclo de vida, o trabalho passa por uma
série de mudanças de State.
Estados de trabalho único
Para uma
solicitação de trabalho one-time,
seu trabalho começa no
estado ENQUEUED.
No estado ENQUEUED, o trabalho se qualifica para ser executado assim que as
Constraints e os requisitos de tempo de atraso inicial
dele são atendidos. A partir daí, ele passa para um
estado RUNNING e,
dependendo do resultado, pode ser movido para
SUCCEEDED,
FAILED ou possivelmente de volta para
ENQUEUED, caso o resultado seja
retry. A qualquer
momento no processo, o trabalho pode ser cancelado. Se isso ocorrer, ele passará para o
estado CANCELLED.
A Figura 1 ilustra a vida útil de um trabalho único, com os eventos que podem levar a outro estado.

Figura 1. Diagrama de estado para trabalho único.
SUCCEEDED, FAILED e CANCELLED representam um estado terminal para esse
trabalho. Se o trabalho estiver em qualquer um desses estados,
WorkInfo.State.isFinished()
retornará "true".
Estados de trabalho periódico
Os estados de sucesso e falha se aplicam apenas a trabalhos únicos e
encadeados.
Para um trabalho periódico,
há apenas um estado terminal, CANCELLED. Isso ocorre porque o trabalho periódico
nunca termina. Após cada execução, ele é reprogramado, independentemente do resultado. A Figura
2 ilustra o diagrama de estado condensado para trabalhos periódicos.

Figura 2. Diagrama de estado para trabalho periódico.
Estado bloqueado
Há um estado final que ainda não mencionamos: BLOCKED. Esse
estado se aplica ao trabalho orquestrado em uma série ou cadeia de trabalho. As cadeias
de trabalho e o diagrama de estado delas são abordados em
Como encadear trabalhos.
A seguir
Em Como gerenciar trabalhos, você aprenderá mais sobre como gerenciar e monitorar o progresso do seu trabalho.