您的位置:首页 > 移动开发 > IOS开发

iOS应用的生命周期

2015-10-17 12:41 471 查看
打开
AppDelegate.m
文件,里面有下面几个方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


- (void)applicationWillResignActive:(UIApplication *)application


- (void)applicationDidEnterBackground:(UIApplication *)application


- (void)applicationWillEnterForeground:(UIApplication *)application


- (void)applicationDidBecomeActive:(UIApplication *)application


那么它们什么时候执行呢?执行的顺序又是什么?

当我们打开应用时,首先调用的方法是:



其中,
didFinishLaunchingWithOptions
当应用开启时调用,
applicationDidBecomeActive
是应用激活时调用。

当我们在模拟器上按Home键时,调用的方法如下:



其中,
applicationWillResignActive
在即将退出应用时调用,
applicationDidEnterBackground
在推出应用(即应用进入后台时)调用。

当我们点击应用图标再一次进入应用时,调用的方法如下:



其中,
applicationWillEnterForeground
在将要打开应用时调用,
applicationDidBecomeActive
在已经打开应用时调用。

注意:
didFinishLaunchingWithOptions
方法一般是应用加载时调用的,如果应用还在内存中,那么应用退出再进入是不会调用该方法的。

下面的代码可以比较相似地模拟QQ设定手势密码的流程:

“`

@implementation AppDelegate

int flag=0;

(BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {

self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

NSUserDefaults* users=[NSUserDefaults standardUserDefaults];

if ([users boolForKey:@”password_notneed”]) {

self.window.rootViewController=[[SStabBarController alloc] init];

}else{

self.window.rootViewController=[[SSpassController alloc] init];

flag=1;

}

[self.window makeKeyAndVisible];

return YES;

}

(void)applicationWillResignActive:(UIApplication *)application {

}

(void)applicationDidEnterBackground:(UIApplication *)application {

flag=0;

}

(void)applicationWillEnterForeground:(UIApplication *)application {

}

(void)applicationDidBecomeActive:(UIApplication *)application {

NSUserDefaults* users=[NSUserDefaults standardUserDefaults];

bool need=[users boolForKey:@”password_notneed”];

if (flag==0&&!need) {

self.window.rootViewController=[[SSpassController alloc] init];

}

}

(void)applicationWillTerminate:(UIApplication *)application {

}“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: