(240527) Medium Daily Digest

Godomin·2024년 5월 27일

Medium-Daily-Digest

목록 보기
6/24

Handling Background Tasks in Android App Development: A Comprehensive Guide

https://blog.stackademic.com/handling-background-tasks-in-android-app-development-a-comprehensive-guide-1cb3a9e323ca

백그라운드 작업을 백그라운드에서 하지 않으면 메인 스레드가 블락되어 유저 경험에 안좋은 영향을 줄 수 있다.

백그라운드 작업을 위한 보편적인 방법들

  1. AsyncTask: 메모리 릭이나 복잡성, lifecycle 이슈 등으로 deprecated되었다.
  2. Threads and Handlers: low-level 방법이며 많은 기능이 있지만 UI 스레드와 함께 사용하면 에러가 발생 가능성이 있기 때문에 복잡하다.
  3. Services: 최근에는 background service의 제한으로 보통 foreground service가 쓰이며, 미디어 플레이어 등 사용자에게 진행 상황을 보여주는 경우 사용된다.
  4. JobScheduler: 단말 컨디션이나 배터리 상태, 네트워크 연결 상태 등을 기반으로 작업을 수행한다.
  5. WorkManager: 미뤄진 작업이나 보장된 작업에 추천된다. 앱이 종료되거나 단말이 재시작 되어도 실행되어야 하는 작업을 지원한다. JobScheduler 위에 구현되어 하위 호환성이 보장된다.

백그라운드 작업을 위한 best practice

  1. 보장된 백그라운드 작업을 위해 WorkManager을 사용
  2. 간결함과 성능을 위해 코루틴 사용
  3. Activity나 Fragment 등 라이프사이클 관리
  4. Constraint를 적합하게 사용
  5. 유저에게 보여야 하는 작업을 위해 Foreground Service 사용
  6. 리소스 사용 최적화
  7. 올바른 에러 처리

0개의 댓글