← 질문 목록
#99깊이 0
앱이 백그라운드로 가면 무엇을 중단해야 하는가?
화면 갱신과 사용자 상호작용에 묶인 작업을 중단해야 한다. 카메라와 타이머 같은 자원을 놓고 복구에 필요한 상태는 즉시 저장한다.
시스템→Scene
active에서 inactive로 바꾼다
Scene→앱
상호작용과 갱신을 멈춘다
시스템→Scene
background로 바꾼다
Scene→저장소
복구할 상태를 기록한다
여러 창을 지원하면 앱 전체 상태와 Scene 상태를 나눠야 한다. UIKit은 SceneDelegate를 쓰고 SwiftUI는 scenePhase 변화를 관찰한다.
백그라운드에 간 뒤 프로세스가 예고 없이 종료될 수 있다. 종료 콜백에만 저장을 맡기지 말고 중요한 변경 시점마다 내구성 있게 기록한다.
계속 실행할 정당한 작업은 목적에 맞는 백그라운드 API로 요청한다. 허용 시간은 시스템이 제한한다. 예약 작업은 실행 시점과 호출 여부도 보장되지 않는다.