WorkManager
에 예약한 작업은 실행되는 동안 여러 상태를 거친다. 작업 상태는 WorkInfo.State
값을 사용하며 다음 값 중 하나에 해당된다.
상태 | 설명 |
ENQUEUED |
예약됨 |
RUNNING |
현재 실행 중 |
SUCCEEDED |
작업 성공 |
FAILED |
작업 실패 |
CANCELLED |
작업 취소 |
BLOCKED |
이전 작업이 완료되지 않아 차단됨 |
일회성 작업의 상태 변화
일회성 작업의 상태는 ENQUEUED
에서 시작한다. 실행되면 RUNNING
상태로 이동하고 결과에 따라 SUCCEEDED
또는 FAILED
상태로 끝난다. 아무 시점에서나 작업을 취소할 수 있으며 취소하면 CANCELLED
상태로 끝난다. SUCCEEDED
, FAILED
, CANCELLED
는 일회성 작업의 최종 상태로 이 중 하나에 해당하면 WorkInfo.State#isFinished()
가 true
를 반환한다.
주기성 작업의 상태 변화
주기적으로 실행되는 작업의 상태 또한 ENQUEUED
에서 시작하여 실행되면 RUNNING
상태로 이동한다. 작업은 언제든 취소할 수 있으며 취소되면 CANCELLED
상태로 끝난다.
하지만 주기성 작업은 종료되지 않기 때문에 CANCELLED
가 유일한 최종 상태다. 그리고 반복적으로 실행되어야 하므로 끝나면 결과에 상관 없이 ENQUEUED
상태로 돌아간다.
다시 말해, ENQUEUED
와 RUNNING
을 번갈아서 변화하다가 작업을 취소하면 CANCELLED
상태로 종료된다.
'Android' 카테고리의 다른 글
WorkManager (4) : 작업 체이닝 (0) | 2022.12.10 |
---|---|
WorkManager (3) : 작업 관리하기 (0) | 2022.12.05 |
WorkManager (1) : 작업 설정/예약하기 (0) | 2022.12.02 |
DataStore (0) | 2022.11.30 |
Lifecycle (0) | 2022.11.11 |