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

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]
程序重新进入前端------作用:数据可以开始恢复
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息