← 질문 목록
#39깊이 0
앱이 백그라운드에서 죽는 이유는?
시스템이 메모리를 회수하기 때문이다. 앞에 보이는 앱을 살리는 것이 우선이라, 안 보이는 프로세스부터 순서대로 거둬간다.
- 포그라운드화면에 보인다. 거의 안 죽인다
- 보이는 상태가려졌지만 살아 있다
- 서비스백그라운드 작업 중. 상황에 따라 거둔다
- 캐시된 상태안 보인다. 여기부터 먼저 죽는다
죽는 것은 사고가 아니라 설계다. 그래서 앱은 언제 죽어도 되도록, 그리고 돌아왔을 때 이어지도록 만들어야 한다.
문제는 죽을 때 알림이 없다는 것이다. 화면을 떠날 때 저장하지 않으면 그대로 사라진다. 사용자에게는 "쓰던 게 날아갔다"로만 보인다.
오래 걸리는 일은 앱 프로세스에 매달지 않는다. 업로드나 동기화는 작업 관리자에 맡겨서, 프로세스가 죽어도 시스템이 나중에 다시 실행하게 한다.
추천 꼬리질문
관련 질문
- 메모리 부족 시 어떤 프로세스부터 종료되는가?모바일앱이 백그라운드에서 종료되는 주요 원인인 시스템의 메모리 부족 시 프로세스 종료 우선순위 개념을 공유한다.
- 앱이 백그라운드로 가면 무엇을 중단해야 하는가?모바일백그라운드에서의 자원 중단 및 관리 실패가 앱의 강제 종료로 이어질 수 있는 상관관계가 있다.
- 백그라운드 제약을 피하는 방법은 무엇인가?모바일둘 다 모바일 앱의 백그라운드 실행 제약과 그로 인한 프로세스 종료 문제를 다룬다.
- 프로세스가 죽으면 무엇이 정리되고 무엇이 남는가?운영체제모바일에서 앱 프로세스를 거두는 것도 같은 그림이다 — 커널이 자원을 회수하고 앱은 그 전제 위에서 상태를 지킨다.
- 좀비 프로세스는 왜 남는가?운영체제