iOS 애플리케이션은 5가지의 상태를 가지고 있다.
- Not Running
- 앱이 실행 되지 않았거나 완전히 종료되었을 때
- In-active
- 앱이 실행되면서 Foreground에 진입하지만 어떠한 이벤트도 받지 않는 상태 (ex Launch Screen)
- Active
- 앱이 실행 중이며 Foregound에 있고 이벤트를 받고 있는 상태
- Background
- 앱이 Background에 있으며 다른 앱으로 전환되었거나 홈 버튼을 눌러 밖으로 나갔을 때 상태
- Suspended
- 앱이 Background에서 특별한 작업이 없으면 전환되는 상태
Not Running
application(_:willFinishLaunchingWithOptions:)
앱 실행을 준비하는 메소드.
필요한 주요 객체들을 생성하고 앱 실행 준비가 끝나기 직전에 호출된다.
applicationDidFinishLaunching(_:)
앱 실행을 위한 모든 준비가 끝난 후 화면이 사용자에게 보여지기 직전에 호출된다.
초기화 코드를 주로 이곳에다 작성.
앱이 종료되기 직전에 호출된다.
(하지만 메모리 확보를 위해 suspended 상태에 있는 앱이 종료될 때나 background 상태에서 사용자에 의해 종료될 때나
오류로 인해 앱이 종료될 때는 호출되지 않는다.)
In-Active
앱이 백그라운드나 낫러닝에서 포어그라운드로 들어가기 직전에 호출.
비활성화 상태를 거쳐 활성화 상태가 된다.
사용자가 Scene과의 상호작용을 중지할 때 호출된다.
(다른 화면으로 이동할 경우)
Active
앱이 In-active에서 Active로 진입하고 난 직후 호출됨.
앱이 실제로 사용되기 전에 마지막으로 준비할 수 있는 코드를 작성할 수 있다.
Background
앱이 백그라운드 상태로 들어갔을 때 호출된다.
suspended 상태가 되기 전 중요한 데이터를 저장하는 등 종료하기 전에 필요한 작업을 한다.
Suspended
따로 호출되는 메소드는 없다.