이동식 저장소

[Android] WorkManager 정리 본문

Primary/Android

[Android] WorkManager 정리

해스끼 2021. 5. 28. 21:57

WorkManager

  • WorkManager는 앱의 메인 로직과는 분리된 백그라운드 작업을 구성할 때 사용한다. 작업은 단 한 번만 실행될 수도 있고(OneTimeWorkRequest), 주기적으로 실행될 수도 있다(PeriodicWorkRequest).
  • 배터리가 충분한 상태 등 특정 조건을 만족할 때에만 작업을 실행하도록 Constraint 를 구성할 수 있다.

작업 정의

  • Worker 또는 Worker 의 하위 클래스를 상속받아 작업을 표현하는 클래스를 정의한다.
  • Worker 클래스의 doWork() 메소드를 오버라이딩하여 작업을 정의한다.

작업 스케줄링

  • 보통 Application.onCreate() 안에서 작업을 등록한다.
  • 작업의 종류(일회성/반복)에 따라 적절한 WorkRequestBuilder 를 이용하여 request를 만든다.
  • WorkManager.getInstance()를 호출하여 WorkManager 객체를 얻고, enqueue() 메소드 시리즈를 호출하여 request를 등록한다.

작업 조건 설정

  • 네트워크 연결 상태, 배터리 상태 등의 조건을 만족할 때에만 작업을 실행하도록 제한할 수 있다.
  • Constraints.Builder()를 이용하여 조건을 만들고, request.setConstraints(constraints)를 이용하여 조건을 등록한다.
Comments