//聯系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄
一、iOS應用程序狀態方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//這是程序啟動時調用的函數??梢栽诖朔椒ㄖ屑尤氤跏蓟嚓P的代碼。
returnYES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
//應用當前正要從前臺運行狀態離開時執行的函數。
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
//此時應用處在background狀態,并且沒有執行任何代碼,未來將被掛起進入suspended狀態。
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
//當前應用正從后臺移入前臺運行狀態,但是當前還沒有到Active狀態時執行的函數。
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
//應用在準備進入前臺運行時執行的函數。(當應用從啟動到前臺,或從后臺轉入前臺都會調用此方法)
}
- (void)applicationWillTerminate:(UIApplication *)application {
//當前應用即將被終止,在終止前調用的函數。如果應用當前處在suspended,此方法不會被調用
}
二、iOS應用程序狀態機一共有五種狀態:
1.Not running:應用還沒有啟動,或者應用正在運行但是途中被系統停止。
2.Inactive:當前應用正在前臺運行,但是并不接收事件(當前或許正在執行其它代碼)。一般每當應用要從一個狀態切換到另一個不同的狀態時,中途過渡會短暫停留在此狀態。唯一在此狀態停留時間比較長的情況是:當用戶鎖屏時,或者系統提示用戶去響應某些(諸如電話來電、有未讀短信等)事件的時候。
3.Active:當前應用正在前臺運行,并且接收事件。這是應用正在前臺運行時所處的正常狀態。
4.Background:應用處在后臺,并且還在執行代碼。大多數將要進入Suspended狀態的應用,會先短暫進入此狀態。然而,對于請求需要額外的執行時間的應用,會在此狀態保持更長一段時間。另外,如果一個應用要求啟動時直接進入后臺運行,這樣的應用會直接從Not running狀態進入Background狀態,中途不會經過Inactive狀態。比如沒有界面的應用。注此處并不特指沒有界面的應用,其實也可以是有界面的應用,只是如果要直接進入background狀態的話,該應用界面不會被顯示。
5.Suspended:應用處在后臺,并且已停止執行代碼。系統自動的將應用移入此狀態,且在此舉之前不會對應用做任何通知。當處在此狀態時,應用依然駐留內存但不執行任何程序代碼。當系統發生低內存告警時,系統將會將處于Suspended狀態的應用清除出內存以為正在前臺運行的應用提供足夠的內存。
如下圖: