应用及视图的生命周期
应用生命周期
- 从点击iOS屏幕的应用图标启动应用开始,到应用完全退出内存为止,期间的所有应用程序行为
视图生命周期
- 从视图开始从
nib
文件或storyboard
文件中加载,到最后视图从内存中卸载,期间的所有与视图相关的行为
应用状态
-
Not Running
- 应用未被启动或被系统或用户终止
-
Inactive
- 过渡状态
- 处于前台运行,但不能接收事件
-
active
- 正常状态
- 能够接收事件
- 没有特别的约束
-
Background
- 会执行代码,但应用不可见
- 处理如下载,定位,remote notification
-
Suspend
- 应用在内存,但没有执行代码
- 系统将没有未完成任务的后台程序置为
suspend
- 系统可能会在任意时刻将
Suspend
程序终止,以腾出空间给其他程序
-
状态迁移
- State changes.png
随状态改变而调用的方法
- 启动时 Launch time
-
application:willFinishLaunchingWithOptions:
用户点击图标时调用,第一次可以添加代码的地方 -
application:didFinishLaunchingWithOptions:
上面调用完后调用 - 应用生命周期内<em>只调用一次</em>
- 放置一次性的数据加载,初始化等操作,提高效率
-
- 转向前台 Transitioning to the foreground
applicationDidBecomeActive:
- 可能会多次被调用
- 用户点击
Home
键-
applicationWillResignActive:
离开前台的时候就会调用 -
applicationDidEnterBackground:
进入后台咯
-
- 用户再次点击应用图标
-
applicationWillEnterForeground:
从后台调出的时候就会调用 -
applicationDidBecomeActive:
变为活跃状态
-
- 应用这次要被杀死累
applicationWillTerminate:
- 只有在应用处于运行状态才会执行此方法
- 若程序处于
Suspend
状态则不会调用 - 文档如是说