launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。html
- 若用户直接启动,lauchOptions内无数据;
- 若由其余应用程序经过openURL:启动,则UIApplicationLaunchOptionsURLKey对应的对象为启动URL(NSURL),UIApplicationLaunchOptionsSourceApplicationKey对应启动的源应用程序的bundle ID (NSString);
- 若由本地通知启动,则UIApplicationLaunchOptionsLocalNotificationKey对应的是为启动应用程序的的本地通知对象(UILocalNotification);
- 若由远程通知启动,则UIApplicationLaunchOptionsRemoteNotificationKey对应的是启动应用程序的的远程通知信息userInfo(NSDictionary);
- 其余key还有UIApplicationLaunchOptionsAnnotationKey,UIApplicationLaunchOptionsLocationKey,
UIApplicationLaunchOptionsNewsstandDownloadsKey。
若是要在启动时,作出一些区分,那就须要在下面的代码作处理。
好比:您的应用能够被某个其它应用调起(做为该应用的子应用),要实现单点登陆,那就须要在启动代码的地方作出合理的验证,并跳过登陆。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSURL *url = [options objectForKey:UIApplicationLaunchOptionsURLKey]; if(url) { } NSString *bundleId = [options objectForKey:UIApplicationLaunchOptionsSourceApplicationKey]; if(bundleId) { } UILocalNotification * localNotify = [options objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; if(localNotify) { } NSDictionary * userInfo = [options objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; if(userInfo) { } }
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"应用程序将要进入非活动状态,即将进入后台");
}
在应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用,如 按下 home 按钮,返回主屏幕,或全屏之间切换应用程序等。
说明:当应用程序将要进入非活动状态时执行,在此期间,应用程序不接收消息或事件,好比来电话了。
三、- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"若是应用程序支持后台运行,则应用程序已经进入后台运行");
}
说明:当程序被推送到后台的时候调用。因此要设置后台继续运行,则在这个函数里面设置便可
四、- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"应用程序将要进入活动状态,即将进入前台运行");
}
说明:当程序从后台将要从新回到前台时候调用,这个恰好跟上面的那个方法相反。
五、- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"应用程序已进入前台,处于活动状态");
}
说明:当应用程序进入活动状态时执行,这个恰好跟上面那个方法相反 。
六、- (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"应用程序将要退出,一般用于保存数据和一些退出前的清理工做");
}
说明:当程序将要退出是被调用,一般是用来保存数据和一些退出前的清理工做。这个须要要设置UIApplicationExitsOnSuspend的键值。
七、- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"系统内存不足,须要进行清理工做");
}
说明:iPhone设备只有有限的内存,若是为应用程序分配了太多内存操做系统会终止应用程序的运行,在终止前会执行这个方法,一般能够在这里进行内存清理工做防止程序被终止。
八、-(void)applicationSignificantTimeChange:(UIApplication *)application
{
NSLog(@"当系统时间发生改变时执行");
}
说明:当系统时间发生改变时执行
九、- (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame
{
NSLog(@"StatusBar框将要变化");
}
说明:当StatusBar框将要变化时执行
十、- (void)application:(UIApplication*)application willChangeStatusBarOrientation:
(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration
{
}
说明:当StatusBar框方向将要变化时执行
十一、- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url
{
}
说明:当经过url执行
十二、- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
{
}
说明:当StatusBar框方向变化完成后执行
1三、- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame
{
}
说明:当StatusBar框变化完成后执行
另外还有一些协议方法须要知道:
Handling Remote Notifications (处理远程消息)
-(void)
application:(UIApplication *)
applicationdidReceiveRemoteNotification:(NSDictonary *) userinfo
说明:当一个运行着的应用程序收到一个远程的通知 发送到委托去...
-(void) application:(UIApplication *) applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *) deviceToken
说明:当一个应用程序成功的注册一个推送服务(APS) 发送到委托去...
-(void) application:(UIApplication *) applicationdidFailToRegisterForRemoteNotificationsWithError:(NSError *) error
说明:当 APS没法成功的完成向 程序进程推送时 发送到委托去...
说明:当一个运行着的应用程序收到一个远程的通知 发送到委托去...
-(void) application:(UIApplication *) applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *) deviceToken
说明:当一个应用程序成功的注册一个推送服务(APS) 发送到委托去...
-(void) application:(UIApplication *) applicationdidFailToRegisterForRemoteNotificationsWithError:(NSError *) error
说明:当 APS没法成功的完成向 程序进程推送时 发送到委托去...
Handling Local Notification (处理本地消息)app
-(void)
application:(UIApplication *)
applicationdidReceiveLocalNotification:(UILocalNotification *)notification
说明:当一个运行着的应用程序收到一个本地的通知 发送到委托去...
说明:当一个运行着的应用程序收到一个本地的通知 发送到委托去...
Responding to Content Protections Changes(响应受保护内容的改变)函数
-applicationProtectedDataWillBecomeUnavailable:
说明:通知委托,受保护的文件当前变为不可用的
-applicationProtectedDataWillBecomeAvailable:
说明:通知委托 受保护的文件当前变为可用
部份资料来源于:http://www.cnblogs.com/worldtraveler/p/4759602.html