관리 메뉴

Kyung_Development

WorkManager 상태 확인 본문

android/Kotlin

WorkManager 상태 확인

Kyung_Development 2025. 1. 21. 14:46
import androidx.lifecycle.Observer
import androidx.work.WorkInfo
import androidx.work.WorkManager

fun checkWorkStatus(context: Context, uniqueWorkName: String) {
    val workManager = WorkManager.getInstance(context)

    // 고유한 작업 이름으로 상태 확인
    workManager.getWorkInfosForUniqueWorkLiveData(uniqueWorkName).observeForever { workInfos ->
        if (workInfos.isNullOrEmpty()) {
            println("해당 이름의 작업이 없습니다.")
        } else {
            for (workInfo in workInfos) {
                when (workInfo.state) {
                    WorkInfo.State.ENQUEUED -> println("작업이 대기 중입니다.")
                    WorkInfo.State.RUNNING -> println("작업이 실행 중입니다.")
                    WorkInfo.State.SUCCEEDED -> println("작업이 완료되었습니다.")
                    WorkInfo.State.FAILED -> println("작업이 실패했습니다.")
                    WorkInfo.State.BLOCKED -> println("작업이 블록되었습니다.")
                    WorkInfo.State.CANCELLED -> println("작업이 취소되었습니다.")
                }
            }
        }
    }
}

 

fun checkWorkByTag(context: Context, tag: String) {
    val workManager = WorkManager.getInstance(context)

    // 태그로 상태 확인
    workManager.getWorkInfosByTagLiveData(tag).observeForever { workInfos ->
        if (workInfos.isNullOrEmpty()) {
            println("해당 태그의 작업이 없습니다.")
        } else {
            for (workInfo in workInfos) {
                println("작업 상태: ${workInfo.state}")
            }
        }
    }
}