//应用程序的状态
//Not running 未运行 程序没启动
//Inactive 未激活 程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态
//Active 激活 程序在前台运行而且接收到了事件。这也是前台的一个正常的模式
//Backgroud 后台 程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态
//Suspended 挂起 程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。
```//应用程序启动会被调用 即simulator模拟运行成功
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"%@",self.window);
//窗口相当于一个容器 可以在窗口上添加控件
//一个应用程序 只有一个window
//如果不对系统设置进行改变 默认使用系统自带的window
//系统自带的window 默认指向ViewController - UIView
//self.window.rootViewController
//如果不想使用系统自带 可以进行自定制window 但是需要设置self.window.rootViewController
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor redColor];
//设置窗口视图可视
[self.window makeKeyAndVisible];
// ViewController * viewC = [[ViewController alloc]init];
//设置为自己创建的根视图控制器
self.window.rootViewController = [[MyViewController alloc]init];
//每个视图控制器的对象都可以设置为根视图控制器 根视图控制器也可以改变
//屏幕 UIScreen
UIScreen * MyScreen = [UIScreen mainScreen];
NSLog(@"screen = %@",MyScreen);
//每个手机屏幕尺寸point 像素px
/*
设备 屏幕尺寸 坐标点 分辨率
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(@"应用程序被启动");
return YES;
}
```
```//应用即将进入后台时候调用
- (void)applicationWillResignActive:(UIApplication *)application {
//1 中断事件进入
//2 进入到后台模式
//3 暂停应用进程 停掉应用的定时器 降低OpenGL帧率
NSLog(@"%@ funcation is calling",NSStringFromSelector(_cmd));
//NSStringFromSelector(_cmd) 访问当前方法名
}
```
```
//应用进入后台时候调用
- (void)applicationDidEnterBackground:(UIApplication *)application {
//释放共享资源 保存用户进程
//保存当前状态 防止自动恢复或者改变状态
NSLog(@"\n程序放弃活跃状态%s",__func__);
}```
```
//应用即将进入到前台 和进入后台正好相反
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"\n程序已经进入后台%s",__func__);
}```
```//应用进入到前台调用
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"\n程序已经变成活跃状态%s",__func__);
}```
```//应用即将被调用
- (void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"\n程序结束%s",__func__);
}```