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