Android Jetpack

WorkManager - 3 (WorkManager + Coroutine)

개복치 개발자 2022. 3. 6. 23:18

개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다.

 

개복치개발자 | Linktree

uyalae@naver.com

linktr.ee

 

 WorkManager를 사용하다보면, 비동기 작업을 하고 싶을 떄가 있습니다.

 

 이럴 때, 코루틴을 사용하면 어떨까 하면서 찾아보다 보면, WorkManager에서는 코루틴을 지원하고 있습니다.

 

 구글 문서를 보시면 아래와 같이 나와 있습니다.

 

CoroutineWorker의 스레딩

 

WorkManager는 Kotlin 사용자에게 코루틴을 위한 최고 수준의 지원을 제공합니다. 시작하려면 gradle 파일에 work-runtime-ktx를 포함해야 합니다. Worker를 확장하는 대신 doWork()의 정지 버전인 CoroutineWorker를 확장해야 합니다. 예를 들어 간단한 CoroutineWorker를 빌드하여 일부 네트워크 작업을 실행하려면 다음과 같이 하면 됩니다.

 
 
 그럼, 이 것들을 이용해서 어떻게 할 수 있냐, 어떤 문제를 해결할 수 있나 하는 것들을 찾아보겠습니다.
 

 기존처럼 일반 WorkManager를 사용했을 때 아래와 같이 나옵니다.

 

 아래와 같이 코드를 작성해보면 아래와 같이 나옵니다.

 

 

 그런데 이 것들을 순차적으로 실행하려면 어떻게 해야할까요?

 

 suspend를 이용하면 아래와 같이 코드를 작성하면 저희가 원하는 형태로 나오게 할 수 있습니다.

 

 

 

 

 - 참조

 

https://developer.android.com/topic/libraries/architecture/workmanager/advanced/coroutineworker?hl=ko 

 

CoroutineWorker의 스레딩  |  Android 개발자  |  Android Developers

CoroutineWorker의 스레딩 WorkManager는 Kotlin 사용자에게 코루틴을 위한 최고 수준의 지원을 제공합니다. 시작하려면 gradle 파일에 work-runtime-ktx를 포함해야 합니다. Worker를 확장하는 대신 doWork()의 정지

developer.android.com