应用生命周期
作为应用程序的委托对象,Appdelegate类在应用生命周期的不同阶段会回调不同方法。
此类本身没有任何功能代码,它的作用是实现了UIApplcation和iOS操作系统之间的协议。该协议的方法就对应UIApplication在操作系统中的各个状态,如:运行时,进入后台,进入前台,被打断,收到本地或远程通知
介绍一些iOS应用的5种状态
Not Running(非运行状态) 应用没有运行或被系统终止
Inactive(前台非活跃状态) 应用正在进入前台状态,但是还不能接收事件处理
Active(前台活跃状态) 应用进入前台状态,能接收事件处理
Background(后台状态) 应用进入后台,依然能执行低吗。如果有可执行的代码,就会执行代码,如果没有可执行的代码或者可执行的代码将执行完毕,应用会马上进入挂起状态
Suspended(挂起状态) 处于挂起的应用进入一种"冷冻"状态,不能执行代码。如果内存不足,应用会被终止。
AppDelegate对象方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"应用启动并进行初始化");
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor greenColor];
[self.window makeKeyAndVisible];
self.window.rootViewController = [[ViewController alloc]init];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"应用从活跃状态进入到非活跃状态");
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"应用进入后台");
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"应用将要进入前台");
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"应用已经进入活动状态");
}
- (void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"应用被终止");
}
APP启动加载
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
ViewController *viewController = [[ViewController alloc]init];
viewController.view.frame = self.window.bounds;
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
return YES;
}
UIApplication常用属性和方法
# 属性
application.applicationBadgeNumber = 8;
application.statusBarStyle = UIStatusBarStyleBlackOpaque;
application.statusBarHidden = YES;
application.networkActivityIndicatorVisible = YES;
# 方法
[application openURL:[NSURL urlWithString:@"http://www.baidu.com"]];
[application openURL:[NSURL urlWithString:@"tel://xxxxxxxxx"]];
[application openURL:[NSURL urlWithString:@"sms://xxxxxxxxx"]];