android-developers.googleblog.com/2018/10/modern-background-execution-in-android.html
WorkManager 란?
WorkManager는 Android Architecture Component 중 하나로, Android Jetpack에 속합니다.
WorkManager는 애플리케이션 프로세스의 활성화 여부에 상관없이 제약 조건 충족 시 실행해야 하는 백그라운드 작업을 처리하는 Android 라이브러리로, 앱을 종료하더라도 시스템이 실행할 작업을 위한 라이브러리 입니다.
WorkManager의 사용 시점
애플리케이션이 백그라운드에 있거나, 포그라운드에 있거나, 포그라운드에서 시작하지만 백그라운드로 이동할 때 백그라운드 작업이 시작될 수 있습니다. 백그라운드 작업은 애플리케이션이 수행하는 작업과는 상관없이 계속 실행하거나, Android가 그 작업의 프로세스를 종료할 경우엔 다시 시작해야 합니다.
백그라운드 실행을 구현하는데 사용할 도구를 결정하려면 개발자가 수행하려는 작업과 제한 사항을 명확하게 이해해야하고, 도구를 결정하는데 도움이 되는 표를 살펴보겠습니다.
사용 사례 | 예 | 해결책 |
연기 가능한 작업 실행을 보장해야하는 경우 | 1. 서버에 로그 업로드 2. 업로드 또는 다운로드할 콘첸츠 암호화 또는 복호화 |
WorkManager |
외부 이벤트에 대한 응답으로 작업이 시작되는 경우 | 1. 이메일과 같은 새로운 온라인 콘텐츠 동기화 | FCM + WorkManager |
사용자가 앱을 종료하더라도, 사용자가 시작한 작업이 계속되어야할 경우 | 1. 음악 플레이어 2. 활동 추적 3. 대중 교통 내비게이션 |
Foreground Service |
정확한 시간에 알림과 같은 사용자 상호작용과 관련된 작업을 트리거할 경우 | 1. 알람 시계 2. 의학 알림 3. 곧 시작될 TV 프로그램에 대한 알림 |
AlarmManager |
WorkManager는 모든 OS 백그라운드 실행 제한을 고려하여 백그라운드 실행에 권장되는 솔루션입니다. 지연된 경우에도 작업이 실행되도록 보장해야하는 경우 WorkManager를 사용해야하며, 이 API를 사용하면 작업을 예약하고 작업을 연결 및 결합 할 수 있습니다. 또한 장치가 사용되지 않는 상태이거나 충전 중일 때 트리거하거나 Content provider가 변경될 때 실행하는 것과 같은 실행 제약 조건을 적용 할 수 있습니다.
'Android' 카테고리의 다른 글
Dependency Injection : 의존성 주입 (0) | 2021.05.08 |
---|---|
Part.2 - Android Application design principle (0) | 2021.05.05 |
[Android] 비동기 처리를 위한 방법 (0) | 2021.04.30 |
[Android] Intent (명시적, 암시적) (0) | 2021.04.16 |
[Android] Activity 생명주기 (0) | 2021.04.09 |