issues
search
yoogail105
/
KkokkoSwift
꼬리에 꼬리를 무는 swift 개념 정리
28
stars
0
forks
source link
# 앱의 상태 변화
#19
Open
yoogail105
opened
2 years ago
yoogail105
commented
2 years ago
앱의 상태 변화
앱은 실행되는 동안 다양한 상태로 변화한다.
화면에 나타났거나, 숨겨졌거나, 시작됐거나, 종료됐거나, ...
전화가 왔을 때 앱이 화면에서 사라지고, 전화 관련 화면이 뜨는 등
운영체제가 처리하는 영역
앱의 상태의 종류(Life Cycle)
Not Running
실행되지 않았거나 종료
Inactive
포그라운드에서 실행 중, 아무런 이벤트를 받지 않고 있는 상태
Active
포그라운드에서 실행 중, 이벤트를 받고 있는 상태
Background
백그라운드에 있지만 여전히 코드가 실행되고 있는 상태
대부분은 suspended상태로 이행하는 도중 일시적으로 진입
but. 파일 다운로드/업로드 등 시간이 소요되는 작업의 경우 일정 시간동안 이 상태에 머무르게 됨
Suspended
앱이 메모리에 유지는 되지만, 실행되는 코드가 없는 상태
메모리가 부족한 상황 → iOS시스템은 포그라운드에 있는 앱의 여유메모리 공간을 확보하기 위해 이 상태에 있는 앱들을 별도의 알림 없이 정리
AppDelegate, 앱 상태 변화 메서드
앱의 상태 변경이 일어날 때마다 앱 객체는 AppDelegate에 정의된 특정한 메서드를 호출한다.
application(_:willFinishLaunchingWithOptions:)
앱 구동 후 필요한 초기 실행 과정이 완료되기 직전에 호출
application(_:didFinishLaunchingWithOptions:)
앱이 사용자에게 화면으로 표시되기 직전에 호출
앱 실행 후 진행할 커스터마이징, 초기화를 위한 코드 작성
applicationDidBecomeActive(_:)
포그라운드 상태(화면 전면에 표시)가 될 때 호출
Inactive 상태에 들어가면서 일시 중지되었다가 재시작하는 코드 작성
ex. 타이머, 스톱워치 앱: Inactive상태에 들어가면 화면 갱신이 더이상 일어나지 않음 →기옷에서 화면과 남은 시각 등을 갱신해 주어야 한다.
applicationDidEnterBackground(_:)
백그라운드 상태 진입했을 때 호출
이 함수 호출: 미래의 어느 순간에 앱이 종료된다는 의미 → 사라지면 안되는 데이트 미리 저장, 공유 자원 해제, 다시 실행될 때 현재 상태로 복구할 때 필요한 정보 저장하는 코드 작성
applicationWillTerminate(_:)
앱이 종료되기 직전에 호출
사용자 데이트 등 종료 전에 한 번 더 저장하는 것이 좋음
이 외에도 다양한 상태 변화에 대응하기 위한 코드 작성 가능
UIAppDelegateProtocol
🔖 출처
꼼꼼한 재은씨의 Swift: 기본편 [2.1.3 앱의 상태 변화]
앱의 상태 변화
앱의 상태의 종류(Life Cycle)
AppDelegate, 앱 상태 변화 메서드
UIAppDelegateProtocol
🔖 출처