WorkManager의 스레딩
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
WorkManager 시작하기에서 WorkManager가 개발자를 대신하여 비동기로 백그라운드 작업을 실행한다고 언급했습니다. 기본 구현은 대부분 앱의 요구 사항을 처리합니다. 중단된 작업의 올바른 처리와 같은 고급 사용 사례는 WorkManager의 스레딩 및 동시 실행을 참고하세요.
WorkManager에서 제공하는 기본 작업 유형에는 4가지가 있습니다.
Worker
는 가장 간단한 구현이며 이전 섹션에서 알아보았습니다. WorkManager는 백그라운드 스레드(재정의할 수 있음)에서 이를 자동으로 실행합니다. Worker의 스레딩에서 Worker
인스턴스의 스레딩에 관해 자세히 알아보세요.
CoroutineWorker
는 Kotlin 사용자에게 권장되는 구현입니다. CoroutineWorker
인스턴스는 백그라운드 작업을 위한 정지 함수를 제공합니다. 기본적으로 이 유형은 맞춤설정할 수 있는 기본 Dispatcher
를 실행합니다. CoroutineWorker
인스턴스의 스레딩에 관한 자세한 내용은 CoroutineWorker의 스레딩을 참고하세요.
RxWorker
는 RxJava 사용자에게 권장되는 구현입니다. 기존 비동기 코드의 많은 부분을 RxJava에서 모델링하는 경우 RxWorker를 사용해야 합니다. 모든 RxJava 개념과 같이 원하는 스레딩 전략을 자유롭게 선택할 수 있습니다. RxWorker의 스레딩에서 RxWorker
인스턴스의 스레딩에 관해 자세히 알아보세요.
ListenableWorker
는 Worker
, CoroutineWorker
, RxWorker
의 기본 클래스입니다. 이 유형은 FusedLocationProviderClient
같은 콜백 기반의 비동기 API와 상호작용해야 하고 RxJava를 사용하지 않는 자바 개발자를 대상으로 합니다. ListenableWorker의 스레딩에서 ListenableWorker
인스턴스의 스레딩에 관해 자세히 알아보세요.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-26(UTC)
[null,null,["최종 업데이트: 2025-07-26(UTC)"],[],[],null,["# Threading in WorkManager\n\nIn [Getting started with WorkManager](/topic/libraries/architecture/workmanager/basics),\nwe mentioned that WorkManager performs background work asynchronously on your\nbehalf. The basic implementation addresses the demands of most apps. For more\nadvanced use cases, such as correctly handling work being stopped, you should\nlearn about threading and concurrency in WorkManager.\n\nThere are four different types of work primitives provided by WorkManager:\n\n- [`Worker`](/reference/androidx/work/Worker) is the simplest implementation, and the one you have seen in previous sections. WorkManager automatically runs it on a background thread (that you can override). Read more about threading in `Worker` instances in [Threading in Worker](/topic/libraries/architecture/workmanager/advanced/worker).\n- [`CoroutineWorker`](/reference/kotlin/androidx/work/CoroutineWorker) is the recommended implementation for Kotlin users. `CoroutineWorker` instances expose a suspending function for background work. By default, they run a default `Dispatcher`, which you can customize. Read more about threading in `CoroutineWorker` instances in [Threading in CoroutineWorker](/topic/libraries/architecture/workmanager/advanced/coroutineworker).\n- [`RxWorker`](/reference/androidx/work/RxWorker) is the recommended implementation for RxJava users. RxWorkers should be used if a lot of your existing asynchronous code is modelled in RxJava. As with all RxJava concepts, you are free to choose the threading strategy of your choice. Read more about threading in `RxWorker` instances in [Threading in RxWorker](/topic/libraries/architecture/workmanager/advanced/rxworker).\n- [`ListenableWorker`](/reference/androidx/work/ListenableWorker) is the base class for `Worker`, `CoroutineWorker`, and `RxWorker`. It is intended for Java developers who have to interact with callback-based asynchronous APIs such as `FusedLocationProviderClient` and are not using RxJava. Read more about threading in `ListenableWorker` instances in [Threading in ListenableWorker](/topic/libraries/architecture/workmanager/advanced/listenableworker)."]]