1. APP 状态
| APP 状态 | 描述 |
|---|---|
| Not running | 未启动或已被终止 |
| Inactive | APP正在前台运行,但是还不能接受触控事件,该过程可能正在执行其它代码,这个状态不会太久。 |
| Active | APP正在前台运行,可以响应事件。APP正常运行时候的状态,并且响应用户状态。 |
| Background | 此时执行代码的时候,APP不在屏幕上显示。当用户退出应用时候,系统在暂停应用前,会将APP切置background状态。另外一种情况是,系统先将APP在后台启动,提供后台间隙来处理类似网络下载、定位、远程消息通知处理的事件。尽量不要在后台进行任务。 |
| Suspended |
2. 状态切换

3. 系统回调
1. Did Finish Launching
当用于启动完成时候调用,可以在这里执行自定义代码
1 | |
2. Will Resign Active
第二个被调用的方法。
- 当APP从foreground 状态或 active 状态离开的时候调用
- 当用户退出应用的时候调用
- 系统闹钟或电话等中断事件发生的时候调用
这个方法适合暂停正在进行的任务或者保存用户的数据和进度。
1 | |
3. Did Enter Background
在 applicationWillResignActive(_:) 方法之后调用。此时应用已经在后台状态。
1 | |
4. Will Enter Foreground
background -> active 中间发生 ,在applicationDidBecomeActive(_:) 之前调用。这个方法可以用来取消在 background 中进行的各种操作。
1 | |
5. Did Become Active
inactive -> active 时候发生;用户忽略打断时候也会发生 (电话、闹钟)
1 | |
6. Will Terminate
这个方法通知APP,APP 将被终止,并从内存中清除。和 applicationDidEnterBackground(_:) 方法有一些类似,用于不一样的类型的APP
1 | |
参考: Apple Education. “App Development with Swift.” Apple Inc. - Education, 2019. Apple Books.