少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述应用程序App的启动过程相关的知识,希望能为你提供帮助。
应用程序App启动分两类:1. 有storyboard 2. 没有storyboard storyboard :
有storyboard情况下1.执行 main 函数;
2.执行UIApplicationMain函数
* 创建UIApplication 对象;
* 创建UIApplication 的 delegate 对象;
(注:
UIApplicationMain 函数的第三个参数就是
UIApplication 的名称,如果指定为 nil, 它会默认为
UIApplication,
UIApplicationMain 函数的第四个参数就是
UIApplication 的代理
)
3. 开启一个主运行循环,保证应用程序不会退出
4. 根据 Info.plist 获得 Main.storyboard 的文件名, 加载 Main.storyboard(有storyboard的情况)
* 创建UIWindow;
* 创建和设置UIWindow 的 rootViewController
* 显示窗口
没有storyboard情况下 :
1.main 函数;
2.UIApplicationMain
* 创建UIApplication 对象;
* 创建UIApplication 的 delegate 对象
(注:
UIApplicationMain 函数的第三个参数就是
UIApplication 的名称,如果指定为 nil, 它会默认为
UIApplication,
UIApplicationMain 函数的第四个参数就是
UIApplication 的代理
)
3. 开启一个主运行循环,保证应用程序不会退出
3.delegate 对象开始处理(监听)系统事件 (没有storyboard的情况)
* 程序启动完毕的时候,就会调用代理的 application:didFinishLaunchingWithOptions: 方法;
* 在application:didFinishLaunchingWithOptions: 方法中创建UIWindow;
* 创建和设置UIWindow 的 rootViewController;
* 显示窗口;
应用的生命周期 :
- -(BOOL)application:(UIApplication )application willFinishLaunchingWithOptions: (NSDictionary )launchOptions 告诉代理进程启动但还没进入状态保存
- -(BOOL)application:(UIApplication )application didFinishLaunchingWithOptions: (NSDictionary )launchOptions 告诉代理启动基本完成程序准备开始运行
- -(void)applicationWillResignActive:(UIApplication *)application 当应用程序将要入非活 动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了
- -(void)applicationDidBecomeActive:(UIApplication *)application 当应用程序入活动状态 执行,这个刚好跟上面那个方法相反
- -(void)applicationDidEnterBackground:(UIApplication *)application 当程序被推送到后台 的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
- -(void)applicationWillEnterForeground:(UIApplication *)application 当程序从后台将要重 新回到前台时候调用,这个刚好跟上面的那个方法相反。
- 【应用程序App的启动过程】-(void)applicationWillTerminate:(UIApplication *)application 当程序将要退出是被调 用,通常是用来保存数据和一些退出前的清理工作。
推荐阅读
- 医药箱APP静态小项目
- elasticsearch index 之 put mapping
- Android5.0以上系统的移动网络开关
- 如何修复Windows 10未显示或无法识别的外置硬盘()
- 10大最佳数据恢复软件合集(哪个最适合你())
- Windows的5大最佳数据恢复软件(Stellar替代方案)
- Windows 10的10个最佳动态壁纸(你最喜欢哪个())
- 30多个Android最佳主屏幕启动器完整合集
- Windows 10的12款最佳免费媒体播放器合集