App 的执行状态的变化由系统控制,以此来响应系统中的行为变化。比如用户按了 Home 键,来了电话,或者其他变化发生,当前正在运行的 app 需要对此作出反应。
App 的执行状态有以下几种:
- Not running:app 没有被启动或者被系统终止了(terminated by the system)
- Inactive:app 在前台运行但是目前没有接收事件。(此时可能在运行其他代码。)此状态通常只是短暂停留,作为去另一个状态的过渡状态。
- Active:app 在前台运行且正在接收事件。这是前台 App的正常状态。
- Background:app 在后台且在运行代码。大多数 app 只是在进入暂停状态的过程中,简短的进入了这个状态。但是,如果 app 请求了额外的执行时间就能够在这个状态停留一段时间。此外,一个在后台启动的 app 会直接进入这个状态,而不是 inactive state。关于如何在后台执行代码,查看Background Execution。
-
Suspended:app 在后台且没有执行代码。系统自动将状态移动到这个状态,并且不会通知。当被暂停,app 停留在内存中但是不执行任何代码。如果内存过低的状态产生,系统将自动清除被暂停的 app,来为前台应用留出更多空间。