← 질문 목록
#187깊이 0
백그라운드 제약을 피하는 방법은 무엇인가?
포그라운드 서비스와 WorkManager를 사용한다. 포그라운드 서비스는 알림을 띄워 먼저 죽는 순서를 뒤로 미룬다. WorkManager는 끊겨도 조건이 맞을 때 다시 돌도록 예약한다. 둘 다 강제 종료를 막지는 못한다.
| 실행 방식 | 실행 조건·특성 |
|---|---|
| 포그라운드 서비스 | 알림창에 상주하며 즉시 실행 |
| WorkManager | 조건 충족 시 시스템이 최적 시점에 실행 |
포그라운드 서비스는 사용자에게 앱이 동작 중임을 알린다. 시스템은 알림이 떠 있는 서비스를 중요도로 높게 평가해 메모리 부족 상황에서도 종료 우선순위를 늦춘다.
WorkManager는 지연 가능한 작업을 처리한다. 배터리 최적화 모드나 Doze 모드에서도 OS가 적절한 시점을 골라 작업을 묶어 처리하므로 전력 소모를 줄인다.
Android 14 이상에서 API 34 이상을 겨냥한 앱은 포그라운드 서비스마다 타입을 적어야 한다. 타입을 명시하지 않거나 부적절한 타입을 쓰면 앱이 비정상 종료된다.
추천 꼬리질문
관련 질문
- 앱이 백그라운드에서 죽는 이유는?모바일둘 다 모바일 앱의 백그라운드 실행 제약과 그로 인한 프로세스 종료 문제를 다룬다.
- 실행 시점과 사용자 인지 여부로 어떤 수단을 고르는가?모바일실행 시점(포그라운드/백그라운드)과 사용자 인지 여부에 따른 수단 선택은 백그라운드 제약 해결 방법과 밀접하게 연관된다.
- 푸시 알림이 안 오는 이유는 대개 무엇인가?모바일백그라운드 제약은 모바일에서 푸시 알림이 안 오거나 지연되는 주요 원인 중 하나이므로 이를 이해해야 한다.
- 백그라운드 전환 때 어디서 자원을 해제하는가?모바일백그라운드 제약을 피하기 위해 자원을 효율적으로 관리하고 해제하는 시점을 다루는 관련 개념이다.
- 메모리 부족 시 어떤 프로세스부터 종료되는가?모바일모바일 운영체제의 백그라운드 프로세스 관리 및 메모리 회수 메커니즘을 공유한다.