关于应用的启动顺序

【译】为避免撕逼,提前声明:本文纯属翻译,仅仅是为了学习,加上水平有限,见谅!

了解自定义代码在启动时候的执行顺序。

概述

启动应用涉及到了一个复杂的步骤顺序,它们大多数都由UIKit自动处理。在启动期间,UIKit调用应用委托的方法,这样你就可以执行自定义任务了。图1描述了应用从启动到初始化完成所发生的一系列步骤。


图1
  1. 启动应用,要么是用户显示的启动要么是系统隐式的启动。
  2. Xcode提供的main函数调用UIKit的UIApplicationMain函数。
  3. UIApplicationMain方法创建一个UIApplication对象和应用委托。
  4. UIKit从主storyboard或者nib文件加载应用的默认界面。
  5. UIKit调用应用委托的application:willFinishLaunchingWithOptions:方法。
  6. UIKit会调用应用委托和视图控制器的额外方法执行状态恢复。
  7. UIKit调用应用委托的application:didFinishLaunchingWithOptions:方法。

当初始化完成的时候,系统会让应用进入激活(foreground)状态或者后台状态。当应用进入激活状态的时候,它的窗口会出现在屏幕上并且它开始响应用户的交互。当应用进入后台状态的时候,它的窗口仍然隐藏并且它在挂起之前只运行较短的一段时间。

你的很多启动时初始化代码可能都是一样的,不管是应用启动进入前台还是后台。例如,你应该初始化应用的数据结构并设置应用的用户界面。然而,如果你只想在应用进入前台或后台的时候执行自定义代码,请检查UIApplication对象的applicationState属性。UIKit即将进入前台的应用把这个属性设置为UIApplicationStateInactive,把即将进入后台的应用的这个属性设置为UIApplicationStateBackground。

你可能感兴趣的:(关于应用的启动顺序)