iOS学习(三十四)iOS应用程序的生命周期
2016-07-13 10:36
447 查看
Main函数入口
所有基于C编写的App的入口都是main函数,但iOS应用程序有点不同。不同就是你不需要为iOS应用程序而自己编写main函数,当你使用Xcode创建工程的时候就已经提供了。除非一些特殊情况,否则你不应该修改Xcode提供的main函数实现。示例代码如下:
上面实例代码中有一个很重要的函数UIApplicationMain,它主要是创建App的几个核心对象来处理以下过程:
从可用Storyboard文件加载用户界面;
调用AppDelegate自定义代码来做一些初始化设置;
将App放入Main Run Loop环境中来响应和处理与用户交互产生的事件。
大多数发生状态转换时都会调用delegate对象对应的方法来响应App的状态改变。下面汇总了delegate对象的所有方法,当App状态发生转换时,你可能会使用到它们。
1.application:willFinishLaunchingWithOptions: - 这个方法是你在启动时的第一次机会来执行代码
2.application:didFinishLaunchingWithOptions: - 这个方法允许你在显示app给用户之前执行最后的初始化操作
3.applicationDidBecomeActive: - app已经切换到active状态后需要执行的操作
4.applicationWillResignActive: - app将要从前台切换到后台时需要执行的操作
5.applicationDidEnterBackground: - app已经进入后台后需要执行的操作
6.applicationWillEnterForeground: - app将要从后台切换到前台需要执行的操作,但app还不是active状态
7.applicationWillTerminate: - app将要结束时需要执行的操作
在上面方法对应的方法中键入NSLog打印。
现在启动程序看看执行的顺序:
启动程序
lifeCycle[40428:11303] willFinishLaunchingWithOptions
lifeCycle[40428:11303] didFinishLaunchingWithOptions
lifeCycle[40428:11303] applicationDidBecomeActive
按下home键
lifeCycle[40428:11303] applicationWillResignActive
lifeCycle[40428:11303] applicationDidEnterBackground
双击home键,再打开程序
lifeCycle[40428:11303] applicationWillEnterForeground
lifeCycle[40428:11303] applicationDidBecomeActive
所有基于C编写的App的入口都是main函数,但iOS应用程序有点不同。不同就是你不需要为iOS应用程序而自己编写main函数,当你使用Xcode创建工程的时候就已经提供了。除非一些特殊情况,否则你不应该修改Xcode提供的main函数实现。示例代码如下:
#import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
上面实例代码中有一个很重要的函数UIApplicationMain,它主要是创建App的几个核心对象来处理以下过程:
从可用Storyboard文件加载用户界面;
调用AppDelegate自定义代码来做一些初始化设置;
将App放入Main Run Loop环境中来响应和处理与用户交互产生的事件。
大多数发生状态转换时都会调用delegate对象对应的方法来响应App的状态改变。下面汇总了delegate对象的所有方法,当App状态发生转换时,你可能会使用到它们。
1.application:willFinishLaunchingWithOptions: - 这个方法是你在启动时的第一次机会来执行代码
2.application:didFinishLaunchingWithOptions: - 这个方法允许你在显示app给用户之前执行最后的初始化操作
3.applicationDidBecomeActive: - app已经切换到active状态后需要执行的操作
4.applicationWillResignActive: - app将要从前台切换到后台时需要执行的操作
5.applicationDidEnterBackground: - app已经进入后台后需要执行的操作
6.applicationWillEnterForeground: - app将要从后台切换到前台需要执行的操作,但app还不是active状态
7.applicationWillTerminate: - app将要结束时需要执行的操作
在上面方法对应的方法中键入NSLog打印。
现在启动程序看看执行的顺序:
启动程序
lifeCycle[40428:11303] willFinishLaunchingWithOptions
lifeCycle[40428:11303] didFinishLaunchingWithOptions
lifeCycle[40428:11303] applicationDidBecomeActive
按下home键
lifeCycle[40428:11303] applicationWillResignActive
lifeCycle[40428:11303] applicationDidEnterBackground
双击home键,再打开程序
lifeCycle[40428:11303] applicationWillEnterForeground
lifeCycle[40428:11303] applicationDidBecomeActive
相关文章推荐
- iOS开发下拉放大,从模糊变清晰的效果
- iOS学习:调用相机和相册,选择图片上传
- iOS 单例的正确姿势
- 关于iOS后台模式
- iOS推送通知的证书设置
- iOS学习笔记:交换Button中图片与文字的左右位置
- iOS键盘按下return和点击空白处时候收起
- 李洪强iOS开发之keychain的使用
- 个人iOS项目常用效果方法注意点集锦(上)
- 李洪强iOS开发支付集成之银联支付
- cordova iOS平台的插件开发
- iOS开发支付集成之银联支付
- IOS Dev Intro - GCD Series 01
- iOS开发支付集成之支付宝支付
- ios修改textField的placeholder的字体颜色大小
- 李洪强iOS开发支付集成之支付宝支付
- IOS Dev Intro - Dispatch Sync
- IOS Dev Intro - Thread Sync
- IOS Dev Intro - NSCondtion
- iOS开源项目HYBHelperKit