iOS应用的生命周期
2015-10-17 12:41
471 查看
打开
那么它们什么时候执行呢?执行的顺序又是什么?
当我们打开应用时,首先调用的方法是:
其中,
当我们在模拟器上按Home键时,调用的方法如下:
其中,
当我们点击应用图标再一次进入应用时,调用的方法如下:
其中,
注意:
下面的代码可以比较相似地模拟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 {
}“`
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 {
}“`
相关文章推荐
- iOS 多线程笔记
- NSUserDefault 保存自定义对象
- 根据日期计算星座
- iOS录音
- 根据日期计算年龄
- ios 调节器 modal 得知
- IOS中延时执行的几种方式的比较和汇总
- iOS开发见闻-第1期
- iOS本地推送
- 【iOS程序启动与运转】- RunLoop个人小结
- iOS多线程之GCD-NSOperation对比总结
- IOS 中常用站位符
- ios 为什么拖拽的控件为weak 手写的strong
- iOS之改变BarButtonItem中显示的字体大小
- iOS之去掉NavigationBar 底部的黑线
- Quartz2D简介
- iOS_自定义Button
- #在蓝懿学习iOSd的日子#
- 傻瓜式操作Nagios
- iOS开发——Handoff详解