본문 바로가기

Android

안드로이드 개념) WorkManager를 사용한 백그라운드 작업 - kotlin

728x90

android-developers.googleblog.com/2018/10/modern-background-execution-in-android.html

 

Modern background execution in Android

Posted by Luiz Gustavo Martins, Partner Developer Advocate, Partner DevRel This is the third in a series of blog posts in which outli...

android-developers.googleblog.com

 

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가 변경될 때 실행하는 것과 같은 실행 제약 조건 적용 할 수 있습니다.