Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 이미지찌그러짐
- scaletype
- 옵서버
- 시퀀스다이어그램
- 싱글톤패턴
- stateflow
- DistributedSystems
- 아키텍쳐패턴
- 이미지짤림
- 구조패턴
- MVVM
- Kotlin
- NetworkCommunication
- SystemDesign
- 행위패턴
- decoding
- android
- 유스케이스다이어그램
- LazyInitialization
- 클래스다이어그램
- SoftwareArchitecture
- LayeredArchitecture
- ArchitecturePatterns
- 전역상태관리
- ImageView
- SharedFlow
- threadsafety
- SDLC
- RxJava
- ClientServerArchitecture
Archives
- Today
- Total
Kyung_Development
WorkManager 상태 확인 본문
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}")
}
}
}
}
'android > Kotlin' 카테고리의 다른 글
Android SharedPreferences로 데이터 누적 및 카운트 관리하기 (0) | 2025.02.06 |
---|---|
kotlin 문자열 처리 종류별, .last() (0) | 2025.01.16 |
Kotlin 컬렉션 완벽 가이드: List, 반복 (2) | 2024.11.21 |