UIApplication 生命周期
2015-06-14 11:18
337 查看
通过代理类AppDelegate来进行管理生命周期。
//
// AppDelegate.m
// AppUI组件学习
//
// Created by 麦子 on 15/6/14.
// Copyright (c) 2015年 麦子. All rights reserved.
//
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
#pragma mark 初始化数据,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
CGRect rect = [[UIScreen mainScreen]bounds];
self.window = [[UIWindow alloc] initWithFrame:rect];
self.window.backgroundColor = [UIColor yellowColor];
[self.window makeKeyAndVisible];
NSLog(@"数据初始化成功。。。。。。只会执行一次");
return YES;
}
#pragma mark 将要进入后台。
//暂时进入后台, 如:来电话了,按住home键进入后台。
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"程序可能被一个电话,将要进入了后台。。。作用:对进入后台的时候,保存一些数据。");
}
#pragma mark 已经进入了后台
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"程序已经进入后台。。。。。");
}
#pragma mark 退出后台,进入前台。
// applicationWillEnterForeground:只有当程序从后台返回到前台这一种情况下才会被调用;而applicationDidBecomeActive:除了从后台返回前台时被调用,还会在程序运行在前台时也被调用(例如之前提到的收到来电提醒后取消接听,双击home键后依旧返回当前app等操作)。所以applicationWillEnterForeground:适合处理那种加载前只需要执行一次的初始化。
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"程序将要进入前端----这个只从后台进入前台的时候才调用");
}
#pragma mark 将要进入前台
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"程序重新进入前端------作用:数据可以开始恢复");
}
#pragma mark 应用程序退出
//这个方法通常是用来保存数据和一些退出前的清理工作,
- (void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"程序退出,需要记录一些数据");
}
@end
运行结果如下:
2015-06-14 11:16:02.119 AppUI组件学习[1157:42479]
数据初始化成功。。。。。。只会执行一次
2015-06-14 11:16:02.121 AppUI组件学习[1157:42479] Application windows are expected to have
a root view controller at the end of application launch
2015-06-14 11:16:02.138 AppUI组件学习[1157:42479]
程序重新进入前端------作用:数据可以开始恢复
按下home键后:
2015-06-14 11:19:53.982 AppUI组件学习[1157:42479]
程序可能被一个电话,将要进入了后台。。。作用:对进入后台的时候,保存一些数据。
2015-06-14 11:19:54.518 AppUI组件学习[1157:42479]
程序已经进入后台。。。。。
重新打开程序:
2015-06-14 11:20:38.757 AppUI组件学习[1157:42479]
程序将要进入前端----这个只从后台进入前台的时候才调用
2015-06-14 11:20:39.293 AppUI组件学习[1157:42479]
程序重新进入前端------作用:数据可以开始恢复
//
// AppDelegate.m
// AppUI组件学习
//
// Created by 麦子 on 15/6/14.
// Copyright (c) 2015年 麦子. All rights reserved.
//
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
#pragma mark 初始化数据,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
CGRect rect = [[UIScreen mainScreen]bounds];
self.window = [[UIWindow alloc] initWithFrame:rect];
self.window.backgroundColor = [UIColor yellowColor];
[self.window makeKeyAndVisible];
NSLog(@"数据初始化成功。。。。。。只会执行一次");
return YES;
}
#pragma mark 将要进入后台。
//暂时进入后台, 如:来电话了,按住home键进入后台。
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"程序可能被一个电话,将要进入了后台。。。作用:对进入后台的时候,保存一些数据。");
}
#pragma mark 已经进入了后台
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"程序已经进入后台。。。。。");
}
#pragma mark 退出后台,进入前台。
// applicationWillEnterForeground:只有当程序从后台返回到前台这一种情况下才会被调用;而applicationDidBecomeActive:除了从后台返回前台时被调用,还会在程序运行在前台时也被调用(例如之前提到的收到来电提醒后取消接听,双击home键后依旧返回当前app等操作)。所以applicationWillEnterForeground:适合处理那种加载前只需要执行一次的初始化。
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"程序将要进入前端----这个只从后台进入前台的时候才调用");
}
#pragma mark 将要进入前台
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"程序重新进入前端------作用:数据可以开始恢复");
}
#pragma mark 应用程序退出
//这个方法通常是用来保存数据和一些退出前的清理工作,
- (void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"程序退出,需要记录一些数据");
}
@end
运行结果如下:
2015-06-14 11:16:02.119 AppUI组件学习[1157:42479]
数据初始化成功。。。。。。只会执行一次
2015-06-14 11:16:02.121 AppUI组件学习[1157:42479] Application windows are expected to have
a root view controller at the end of application launch
2015-06-14 11:16:02.138 AppUI组件学习[1157:42479]
程序重新进入前端------作用:数据可以开始恢复
按下home键后:
2015-06-14 11:19:53.982 AppUI组件学习[1157:42479]
程序可能被一个电话,将要进入了后台。。。作用:对进入后台的时候,保存一些数据。
2015-06-14 11:19:54.518 AppUI组件学习[1157:42479]
程序已经进入后台。。。。。
重新打开程序:
2015-06-14 11:20:38.757 AppUI组件学习[1157:42479]
程序将要进入前端----这个只从后台进入前台的时候才调用
2015-06-14 11:20:39.293 AppUI组件学习[1157:42479]
程序重新进入前端------作用:数据可以开始恢复
相关文章推荐
- Servlet3.1应用生命周期事件 (转载)
- android横竖屏切换时候Activity的生命周期
- android生命周期深入分析(一)
- IIS处理Asp.net请求和Asp.net页面生命周期说明
- ASP.NET Web页生命周期和执行的方法介绍
- 关于PHP5 Session生命周期介绍
- Android静态变量的生命周期 简单介绍
- Android中Activity的生命周期探讨
- android生命周期深入分析(二)
- 基于Android Service 生命周期的详细介绍
- 跟我学Laravel之请求(Request)的生命周期
- 验证一个ASP.NET应用程序和页面的生命周期的实现代码
- asp.net页面生命周期详解
- IIS处理Asp.net请求和Asp.net页面生命周期详细说明
- JS控件的生命周期介绍
- java线程之线程的生命周期的使用
- java多线程编程之线程的生命周期
- 图解Java线程的生命周期
- java类型生命周期的详细解析
- Android 程序应用的生命周期