应用启动执行流程图
1.应用的生命周期
应用的生命周期的方法一般写在AppDelegate中
各个程序运行状态时代理的回调:
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
进程即将启动的时候代理会执行该方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
进程启动完成程序准备开始运行的时候执行该方法
- (void)applicationDidFinishLaunching:(UIApplication*)application
当程序载入后执行
- (void)applicationDidBecomeActive:(UIApplication *)application
当应用程序入活动状态执行
- (void)applicationWillResignActive:(UIApplication *)application
当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了
- (void)applicationDidEnterBackground:(UIApplication *)application
当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
- (void)applicationWillEnterForeground:(UIApplication *)application
当程序从后台将要重新回到前台时候调用。
- (void)applicationWillTerminate:(UIApplication *)application
当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。
浅析main()和UIApplicationMain()
intmain(intargc,char* argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); }
}
所有的C语言编写的程序,其执行入口都是main()函数
这段代码的UIApplicationMain函数会创建一个UIApplication对象,每个iOS应用程序有且仅有一个UIApplication对象,该对象的作用是维护运行循环.一旦程序启动,就会创建这个UIApplication对象,该对象的运行循环就会一直循环下去,main()函数也进入阻塞状态.
2.界面之间的生命周期
- (void)viewDidLoad;
第一次打开该界面的时候会调用,在这里一般用来做各种数据的初始化。(注意返回到该页面不会执行该方法,除非关闭该页面,重新打开才会执行该方法)
- (void)viewWillAppear:(BOOL)animated;
在上面的didload方法执行完毕之后,页面即将要显示的时候会执行该方法,该方法也可以对数据来进行初始化。(即使是返回到该页面,也会执行该方法)
- (void)viewDidAppear:(BOOL)animated;
等页面加载完之后就执行的方法。
- (void)viewWillDisappear:(BOOL)animated;
页面将要消失执行的方法
- (void)viewDidDisappear:(BOOL)animated;
界面已经消失的时候执行的方法
网友评论