app delegate的函數與使用時機

app delegate的函數與使用時機

1、-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
​ 告訴代理進程啓動但還沒進入狀態保存

返回值說明:如果app不能處理的URL或者user activity,以及app不執行 application:performActionForShortcutItem:completionHandler:,返回no,否則返回yes。如果通過遠程推送喚醒app則忽略此函數返回值

2、-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
告訴代理啓動基本完成程序準備開始運行

程序首次已經完成啓動時執行,若直接啓動,launchOptions中沒有數據;否則,launchOptions將包含對應方式的內容

3、-(void)applicationDidBecomeActive:(UIApplication *)application
當應用程序入活動狀態執行,使用這個方法重啓在inactive階段暫停的任務或未開啓的任務

例如,重啓timer或者加快OpenGL ES幀速率,或者將刷新app界面(app之前在後臺),掉用這個方法是,app也將發出一個通知 UIApplicationDidBecomeActiveNotification

4、-(void)applicationWillResignActive:(UIApplication *)application
當應用程序將要入非活動狀態執行,在此期間,應用程序不接收消息或事件,程序將要失去Active狀態時調用,比如按下Home鍵或有電話信息進來。對應applicationWillEnterForeground(將進入前臺),這個方法用來

暫停正在執行的任務;
禁止計時器;
減少OpenGL ES幀率;
若爲遊戲應暫停遊戲;

5、- (void)applicationDidEnterBackground:(UIApplication *)application
​ 當程序被推送到後臺的時候調用。所以要設置後臺繼續運行,則在這個函數裏面設置即可。對應applicationDidBecomeActive(已經變成前臺),這個方法用來

釋放共享資源;
保存用戶數據(寫到硬盤);
作廢計時器;

保存足夠的程序狀態以便下次恢復;

6、- (void)applicationWillEnterForeground:(UIApplication *)application
當程序從後臺將要重新回到前臺時候調用,對應applicationWillResignActive(將進入後臺)。這個方法用來撤銷applicationWillResignActive中做的改變。

7、- (void)applicationWillTerminate:(UIApplication *)application
當程序將要退出是被調用,通常是用來保存數據和一些退出前的清理工作。這個需要要設置UIApplicationExitsOnSuspend的鍵值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章