Notice
Recent Posts
Recent Comments
Link
투케이2K
572. (Android/안드로이드) WorkManager 설명 및 소스 코드 참고 사이트 정리 본문
[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
============================================================
[참고 사이트 주소]
============================================================
1. 안드로이드 공식 사이트 WorkManager 설명
https://developer.android.com/jetpack/androidx/releases/work?hl=ko
2. 안드로이드 공식 사이트 WorkManager 의존성 부여 및 사용 방법
https://developer.android.com/topic/libraries/architecture/workmanager/basics?hl=ko
3. 안드로이드 공식 사이트 WorkManager 메소드 종류
https://developer.android.com/reference/androidx/work/WorkManager
4. WorkManager 소스 코드 참고 예시 사이트
https://www.tabnine.com/code/java/classes/androidx.work.WorkManager
============================================================
[WorkManager 기능 요약 설명]
============================================================
1. WorkManager 는 Android 10 (API 수준 29) 이상을 타겟팅하는 경우에서 백그라운드 작업을 수행할 때 권장되는 솔루션입니다
2. WorkManager 는 FirebaseJobDispatcher, GcmNetworkManager, Job Scheduler 를 비롯하여 이전의 모든 Android 백그라운드 작업을 대체할 때 권장되는 솔루션입니다
3. WorkManager 는 네트워크 상태, 배터리 상태 등에 따라 자동 수행할 수 있게 트리거 설정을 할 수 있습니다
4. WorkManager 는 싱글톤으로 구현이 되어있기 때문에 getInstance() 로 WorkManager 의 인스턴스를 받아 사용 합니다
5. WorkManager 작업 유형
- 즉시 : 즉시 시작하고 곧 완료해야 하는 작업
* 주기성 : 1회
* 사용 방법 : OneTimeWorkRequest 사용
- 장기 실행 : 오래 (10분 이상이 될 수 있음) 실행될 수 있는 작업
* 주기성 : 1회 또는 주기적
* 사용 방법 : 모든 WorkRequest 또는 Worker에서 setForeground() 를 호출하여 알림을 처리
- 지연 가능 : 나중에 시작하며 주기적으로 실행될 수 있는 예약된 작업
* 주기성 : 1회 또는 주기적
* 사용 방법 : PeriodicWorkRequest 사용
6. WorkManager 관련 추가 설명
- WorkManager : 처리해야 하는 작업을 자신의 큐에 넣고 관리
- Worker : 추상 클래스이며, 처리해야 하는 백그라운드 작업의 코드를 doWork() 메서드에 작성
- WorkRequest : WorkManager 를 통해 실제 요청하게 될 개별 작업 / 처리해야 할 작업인 Work 와 작업 반복 여부 및 작업 실행 조건, 제약 사항등 이 작업을 어떻게 처리할 것인지에 대한 정보가 담김
- WorkState : WorkRequst 의 id 와 해당 WorkRequest 의 현재 상태를 확인 / ENQUEUED, RUNNING, SUCCEEDED, FAILED, BLOCKED, CANCLLED 의 6개 상태
============================================================
[build.gradle 의존성 부여 참고]
============================================================
// -----------------------------------------------------------
// [Android WorkManager 의존성 부여]
def work_version = "2.8.0" // [CompileSdk / targetSdk : 33]
//def work_version = "2.7.0" // [CompileSdk / targetSdk : 31]
// (Java only)
implementation "androidx.work:work-runtime:$work_version"
// Kotlin + coroutines
implementation "androidx.work:work-runtime-ktx:$work_version"
// optional - RxJava2 support
implementation "androidx.work:work-rxjava2:$work_version"
// optional - GCMNetworkManager support
implementation "androidx.work:work-gcm:$work_version"
// optional - Test helpers
androidTestImplementation "androidx.work:work-testing:$work_version"
// optional - Multiprocess support
implementation "androidx.work:work-multiprocess:$work_version"
// -----------------------------------------------------------
반응형
'Android' 카테고리의 다른 글
Comments