关于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 条评论
登录 后参与评论

相关文章

来自专栏技术总结

关于后台执行顺序

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

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

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

2774
来自专栏智能合约

PHP性能分析之Xhprof安装

1233
来自专栏数据之美

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

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

2398
来自专栏Golang语言社区

Linux常用命令速查备忘

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

3659
来自专栏枕边书

PHP中的数据库二、memcache

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

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

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

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

3597
来自专栏张伟博客

CentOS7上安装并配置Nginx、PHP、MySql

除了systemctl start nginx之外,常用的相关命令还有systemctl stop nginx、systemctl restart nginx、...

3652
来自专栏维C果糖

IntelliJ IDEA 编译方式介绍及编译器的设置和选择

相对于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也可以通过设置开启实时编译,但是太浪费资...

4965
来自专栏JAVA技术站

Ubantu下实现Tomcat+memcached+nginx多实例部署

http://my.oschina.net/u/136848/blog/283599

542

扫码关注云+社区