理解应用的状态对于我们开发iOS大有裨益。
当前应用所处什么状态,什么促使它在各个状态间进行过渡,你的代码又是如何
唤醒这些过渡,等等等等。
先请看下图:
1. 当应用出于非运行状态时,它处于图中的"Not Running"状态,它不执行任何代码,也不消耗任何内存。
2. 用户启动应用后,进入"Active"状态。在该状态下,应用在手机屏上显示图形界面,接收事件,你的代码
负责处理这些事件。
需要注意的是,当处于"Active"状态时,你的应用是可以被一些系统事件所打断的,比如:
SMS消息,推送通知,电话或者报警。然后应用便进入下一个状态"Inactive"。
3. 在"Inactive"状态中,应用处于遮罩(Overlay)背后,继续执行代码,但请注意,
这时应用不再接收事件。
4. 当用户按下Home键或者切换到当前应用以外的其它应用的时候,当前应用便进入"Background"
状态。在该状态下,应用既不显示图形界面,也不接收任何事件,但它继续执行代码。
默认情况下,应用有10秒事件,然后便进入下一个状态"Suspended"状态。
在这段时间内,你的应用应该尽快保存用户数据,释放共享资源。
5. 当应用出于"Suspended"状态时,你看不到它的界面,它也不执行任何代码。
不需要的资源会被销毁。在该状态,应用出于冰冻状态,随时等待用户将它
唤醒并解冻。
最后,我们用一个表格把这几个状态进行下归纳,如下: