手记

关于App的启动顺序

前言:了解你的自定义代码在启动时的执行顺序
综述:

启动一个app涉及一系列复杂的步骤顺序,大部分步骤由UIKit自动处理,在启动顺序中,UIKit调用你app delegate 方法,因此你可以执行自定义的任务,图一列举了从app启动到初始化阶段的步骤顺序


1、应用程序启动,要么由用户显式启动,要么由系统隐式启动。

2、xcode提供的main函数调用UIKit的UIApplicationMain函数。

3、UIApplicationMain函数创建UIApplication对象和你的app委托。

4、UIKit从主故事板或nib文件加载应用程序的默认界面。

5、UIKit调用你app delegate中的application:willFinishLaunchingWithOptions:方法。

6、UIKit执行状态恢复,它调用你的app delegate和视图控制器的其他方法。

7、UIKit调用你的app delegateapplication:didFinishLaunchingWithOptions:方法。

初始化完成后,系统将应用程序移动到活跃(前台)状态或后台状态。当你的应用程序移动到活跃状态时,它的窗口会出现在屏幕上,并开始响应用户的交互。当你的应用程序移动到后台状态时,它的窗口是隐藏的,它只会运行一小段时间,然后才会被暂停。

无论应用程序是在前台还是在后台启动,大多数启动时的初始化代码都应该是相同的。比如,你初始化应用程序的数据并设置应用程序的用户界面。但是,你有一些自定义任务,你只希望在移动到前台或者后台时执行,请检查下UIApplication对象的applicationState属性,UIKit将该属性设置为UIApplicationStateInactive用于移动到前台的应用程序,而UIApplicationStateBackground用于移动到后台的应用程序。

1人推荐
随时随地看视频
慕课网APP