iOS app的生命周期

402 阅读1分钟

1.app首先执行main函数;

  1. 执行UIApplicationMain函数。第四个参数指定UIApplication的代理,第三个参数指定UIApplication的类名;

  2. UIApplicationMain函数内部

3.1 创建一个UIApplication实例。这个UIApplication是一个单例对象,一个UIApplication对象对应一个iOS应用程序;

3.2 UIApplication对象是应用程序的象征;

3.3 开启一个消息循环(main loop);

3.4 创建一个UIApplication的delegate对象,负责监听UIApplication的生命周期;

3.5 当UIApplication的生命周期发生改变时,会给AppDelegate发送不同的消息。

3.6 每一个应用程序都有属于自己的UIWindow,UIWindow继承于UIView。UIView:视图,屏幕上能看得见摸得着的东西都是UIView,比如按钮,标签,文本输入框等。UIViewController:内部默认有一个UIView视图,UIViewController负责管理UIView的生命周期、装配数据到UIView上显示,处理UIView事件。UIWindow里面包含状态栏和第一个UIViewController,即rootViewController。

下图是MVC的关系视图

MVC关系视图.png Main run loop 处理事务示意图

Main run loop.png UIApplication的生命周期

1.当第一次运行程序时

didFinishLaunchingWithOptions:程序加载完毕。

applicationDidBecomeActive:进入激活状态,可以与用户进行交互。

当点击home键时

applicationWillResignActive:退出激活状态,不能与用户进行交互。

applicationDidEnterBackground:进入后台,iOS4之后支持多任务,即程序进入后台之后不会中断。

2.当再次点击进入程序时

applicationWillEnterForeground:进入前台。

applicationDidBecomeActive:已经进入激活状态。**

3.当程序退出是不管是否正常退出都执行

applicationWillTerminate: