关于App的启动顺序

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

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

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用于移动到后台的应用程序。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

python升级后带来的几个小问题

1)python升级带来的yum异常:File "/usr/bin/yum", line 30 原因:这是因为yum采用Python作为命令解释器,这可以从/...

29150
来自专栏枕边书

PHP中的数据库二、memcache

在一个高并发的web应用中,数据库存取瓶颈一直是个大问题,一旦达到某个极限,数据库很容易崩溃,但是如果我们把常用的数据放到内存中,在需要的时候从内存中取,不光读...

24880
来自专栏Golang语言社区

Linux常用命令速查备忘

PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shut...

39590
来自专栏电光石火

tomcat配置ROOT目录和多站点

1 打开tomcat/conf/server.xml,在里面找到<Engine name="Catalina" defaultHost="localhost">...

34870
来自专栏数据之美

windows下禁止某个程序启动运行

最近优酷客户端总是自行运行启动,禁都禁不掉(MD,优酷的产品、开发太脑残。。。) 360等工具又只能禁止程序的开机启动,不能禁止程序的后续运行, 搜了下一般两种...

36080
来自专栏北京马哥教育

Nginx+PHP-FPM的域Socket配置方法

马哥linux运维 | 最专业的linux培训机构 ---- 1什么是域Socket “Unix domain socket 或者 IPCsocket 是一种终...

31840
来自专栏Python研发

django-celery定时任务以及异步任务and服务器部署并且运行全部过程

应用Celery之前,我想大家都已经了解了,什么是Celery,Celery可以做什么,等等一些关于Celery的问题,在这里我就不一一解释了。

1.2K20
来自专栏电光石火

安装配置Tomcat

传送门:http://pan.baidu.com/s/1i5GzrjZ 密码: s4ye 下载tomcat,解压到你想要的目录下 配置tomcat环境变量:  ...

21980
来自专栏程序员互动联盟

【专业技术】linux启动流程剖析

半年前,我写了《计算机是如何启动的?》,探讨BIOS和主引导记录的作用。 那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我想接着往下写,探讨操作系统接管...

37570
来自专栏从零开始学自动化测试

Selenium2+python自动化62-jenkins持续集成环境搭建

一、环境准备 小编环境: 1.win10 64位 2.JDK 1.8.0_66 3.tomcat 9.0.0.M4 4.jenkins 2.0 二、安装JDK ...

29640

扫码关注云+社区

领取腾讯云代金券