//應(yīng)用程序的狀態(tài)
//Not running? 未運(yùn)行? 程序沒(méi)啟動(dòng)
//Inactive? ? 未激活? 程序在前臺(tái)運(yùn)行,不過(guò)沒(méi)有接收到事件。在沒(méi)有事件處理情況下程序通常停留在這個(gè)狀態(tài)
//Active? ? ? 激活? ? 程序在前臺(tái)運(yùn)行而且接收到了事件。這也是前臺(tái)的一個(gè)正常的模式
//Backgroud? ? 后臺(tái)? 程序在后臺(tái)而且能執(zhí)行代碼,大多數(shù)程序進(jìn)入這個(gè)狀態(tài)后會(huì)在在這個(gè)狀態(tài)上停留一會(huì)。時(shí)間到之后會(huì)進(jìn)入掛起狀態(tài)(Suspended)。有的程序經(jīng)過(guò)特殊的請(qǐng)求后可以長(zhǎng)期處于Backgroud狀態(tài)
//Suspended? ? 掛起? 程序在后臺(tái)不能執(zhí)行代碼。系統(tǒng)會(huì)自動(dòng)把程序變成這個(gè)狀態(tài)而且不會(huì)發(fā)出通知。當(dāng)掛起時(shí),程序還是停留在內(nèi)存中的,當(dāng)系統(tǒng)內(nèi)存低時(shí),系統(tǒng)就把掛起的程序清除掉,為前臺(tái)程序提供更多的內(nèi)存。
```//應(yīng)用程序啟動(dòng)會(huì)被調(diào)用 即simulator模擬運(yùn)行成功
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"%@",self.window);
//窗口相當(dāng)于一個(gè)容器? 可以在窗口上添加控件
//一個(gè)應(yīng)用程序 只有一個(gè)window
//如果不對(duì)系統(tǒng)設(shè)置進(jìn)行改變 默認(rèn)使用系統(tǒng)自帶的window
//系統(tǒng)自帶的window 默認(rèn)指向ViewController - UIView
//self.window.rootViewController
//如果不想使用系統(tǒng)自帶 可以進(jìn)行自定制window 但是需要設(shè)置self.window.rootViewController
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor redColor];
//設(shè)置窗口視圖可視
[self.window makeKeyAndVisible];
// ViewController * viewC = [[ViewController alloc]init];
//設(shè)置為自己創(chuàng)建的根視圖控制器
self.window.rootViewController = [[MyViewController alloc]init];
//每個(gè)視圖控制器的對(duì)象都可以設(shè)置為根視圖控制器 根視圖控制器也可以改變
//屏幕? UIScreen
UIScreen * MyScreen = [UIScreen mainScreen];
NSLog(@"screen = %@",MyScreen);
//每個(gè)手機(jī)屏幕尺寸point 像素px
/*
設(shè)備? ? ? ? 屏幕尺寸? ? 坐標(biāo)點(diǎn)? ? ? ? 分辨率
iPhone4/4s? 3.5英寸? ? 320 * 480? ? 640 * 960
iPhone5/5s? 4.0英寸? ? 320 * 568? ? 640 * 1136
iPhone6/6s? 4.7英寸? ? 375 * 667? ? 750 * 1334
iPhone6Plus 5.5英寸? ? 414 * 736? ? 1080 * 1920
*/
//frame? bounds
NSLog(@"應(yīng)用程序被啟動(dòng)");
return YES;
}
```
```//應(yīng)用即將進(jìn)入后臺(tái)時(shí)候調(diào)用
- (void)applicationWillResignActive:(UIApplication *)application {
//1 中斷事件進(jìn)入
//2 進(jìn)入到后臺(tái)模式
//3 暫停應(yīng)用進(jìn)程 停掉應(yīng)用的定時(shí)器 降低OpenGL幀率
NSLog(@"%@ funcation is calling",NSStringFromSelector(_cmd));
//NSStringFromSelector(_cmd) 訪問(wèn)當(dāng)前方法名
}
```
```
//應(yīng)用進(jìn)入后臺(tái)時(shí)候調(diào)用
- (void)applicationDidEnterBackground:(UIApplication *)application {
//釋放共享資源 保存用戶進(jìn)程
//保存當(dāng)前狀態(tài) 防止自動(dòng)恢復(fù)或者改變狀態(tài)
NSLog(@"\n程序放棄活躍狀態(tài)%s",__func__);
}```
```
//應(yīng)用即將進(jìn)入到前臺(tái) 和進(jìn)入后臺(tái)正好相反
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"\n程序已經(jīng)進(jìn)入后臺(tái)%s",__func__);
}```
```//應(yīng)用進(jìn)入到前臺(tái)調(diào)用
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"\n程序已經(jīng)變成活躍狀態(tài)%s",__func__);
}```
```//應(yīng)用即將被調(diào)用
- (void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"\n程序結(jié)束%s",__func__);
}```