大家都知道,对于一个标准的 iOS 应用程序来说,在不同 的时期会有不同的状态,如下图所示。
图 iOS 应用程序状态转换图
正常情况下,iOS 应用程序主要有五种常见的状态。
• Not running
非运行状态。指应用程序还没有被启动,或者已被系统终止。
• Inactive
前台非活动状态。指应用程序即将进入前台状态,但当前 未接收到任何事件(它可能正在执行其它代码)。应用程 序通常只在转换到其它状态时才会短暂地进入这个状态。
• Active
前台活跃状态。指应用程序正在前台运行,可接收事件并 进行处理。这也是一个 iOS 应用程序处于前台的正常模式。
• Background
进入后台状态。指应用程序进入了后台并可执行代码。大 多数应用程序在被挂起前都会短暂地进入这个状态。
• Suspended
挂起状态。指应用程序进入后台但没有执行任何代码,系 统会自动的将应用程序转移到此状态,并且在执行此操作 之前不会通知应用程序。挂起时,应用程序会保留在内存中, 但不执行任何代码。当系统出现内存不足情况时,系统可 能会在未通知应用程序的情况下清除被挂起的应用程序, 为前台应用程序尽可能腾出更多的运行资源。
在应用程序不同状态转换的过程中,系统会回调实现了 UIApplicationDelegate 协议的类的一些方法,并发送相 应的本地通知(系统会先回调相应的方法,待回调方法执 行完后,再发送相应的通知),回调方法和本地通知的对 应关系可参考如下表所示。
关于 iOS 应用程序状态更详细的内容,及 iOS 更多内容,可点击下方白皮书了解