天天看點

UIApplication 生命周期

    通過代理類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] 程式重新進入前端------作用:資料可以開始恢複