IOS开发学习(1)-IOS应用程序周期

来源:互联网 发布:linux vim php插件 编辑:程序博客网 时间:2024/04/29 17:31

每个IOS应用包含一个UIApplication对象,系统通过UIApplication类监控应用程序生命周期全过程。每一个UIApplication对象有一个代理对象,并由该代理处理UIApplication对象检测到的应用程序生命周期事件。


每个IOS应用程序有5种状态:

  1、not running:程序还没有启动。

2、Inactive:程序在前台运行,但并不接收事件。

  3、Active:程序在前台运行,并且接收事件。

4、Background:程序处在后台,并且还在执行代码。如果一个应用要求启动时直接进入后台运行,这样的应用会直接从Not Running状态进入Background状态,不会经过Inactive状态。

5、Suspended:程序处在后台,并且已停止执行代码。当系统发生低内存警告时,系统会将处在Suspended状态的应用清除内存。


UIApplication代理类与生命周期相关的函数

1、- (void)applicationWillResignActive:(UIApplication *)application;
当应用程序将要进入非活动状态执行。

2、- (void)applicationDidBecomeActive:(UIApplication *)application;

当应用程序进入活动状态执行。

3、- (void)applicationDidEnterBackground:(UIApplication *)application 

当程序被推送到后台的时候调用。

4、- (void)applicationWillEnterForeground:(UIApplication *)application

当应用从后台将要重新回到前台时候调用。

5、- (void)applicationWillTerminate:(UIApplication *)application;

当程序将要退出时被调用。这个需要设置UIApplicationExitsOnSuspend的键值为YES,ios5设置Application does not run in background 的键值为YES。

6、- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application;

如果应用程序分配内存太多,操作系统会终止运行该应用程序,在终止运行前会执行该方法。

7、- (void)applicationDidFinishLaunching:(UIApplication *)application;

当程序载入后执行

8、- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url; 

当打开URL时执行。

UIViewController生命周期

   1、- (void)loadView;

用于加载视图资源并初始化视图。

2、- (void)viewWillUnload和- (void)viewDidUnload

用于释放视图资源。

3、- (void)viewWillAppear:(BOOL)animated;

用于将要加载出视图

4、- (void)viewDidAppear:(BOOL)animated;

表示视图出现

5、- (void)viewWillDisappear:(BOOL)animated;

表示视图将要消失

6、- (void)viewDidDisappear:(BOOL)animated;

表示视图已经消失。

0 0