关闭

ios应用程序的生命周期

347人阅读 评论(0) 收藏 举报
先引用一段话:

所有的iPhone应用程序都是基于UIKit框架构建而成的,因此,它们在本质上 具有相同的核心架构。UIKit负责提供运行应用程序和协调用户输入及屏幕显示 所需要的关键对象。应用程序之间不同的地方在于如何配置缺省对象,以及如 何通过定制对象来添加用户界面和行为。

大家来看个图

我来解释一下这个图, 
一开始当用户按下应用程序图标的时候, 程序开始执行,(当然,如果有一开始的LOGO的话,会在LOGO之后调用)

然后开始执行这一段代码,  从UIApplicationMain  进入应用 . 随之UIKit开始进入无限的消息循环,

// If nil is specified for principalClassName, the value for NSPrincipalClass from the Info.plist is used. If there is no

// NSPrincipalClass key specified, the UIApplication class is used. The delegate class will be instantiated using init.

UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);

UIApplicationMain  的官方文档    基本上main函数可以不要改.

然后appdelegate里调- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 开始用户写的代码.

而Event Loop  则一直在监听  看有没有 handle event   这就是为什么,当你向某个UI组件发送什么消息,或者按了一下就会响应什么事件了.  

在appdelegate里当程序结束时响应  - (void)applicationWillTerminate:(UIApplication *)application

UIKit 得知程序要结束了,于是 aplication execution terminates   

而程序进入后台时响应  applicationDidEnterBackground:        ios4 之后才有.  不是真正的后台,进程会暂停.

这就是整个应用的生命周期了.

------------------
Bunnydu
唯心而已,心之所向,無懼無悔.
 
School of Computer Science and Technology
Huazhong University of Science and Technology (HUST)
Wuhan, 430074, China
Tel: 15926393802
Email:dskyu2004@gmail.com  bunnydu@qq.com
 
 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2980次
    • 积分:93
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    文章分类
    文章存档
    最新评论