Snip20160317_1.png
Snip20160317_2.png
Snip20160317_3.png
應(yīng)用程序的狀態(tài)
Not running 未運(yùn)行 程序沒啟動
Inactive 未激活 程序在前臺運(yùn)行,不過沒有接收到事件。在沒有事件處理情況下程序通常停留在這個狀態(tài)
Active 激活 程序在前臺運(yùn)行而且接收到了事件。這也是前臺的一個正常的模式
Backgroud 后臺 程序在后臺而且能執(zhí)行代碼,大多數(shù)程序進(jìn)入這個狀態(tài)后會在在這個狀態(tài)上停留一會。時間到之后會進(jìn)入掛起狀態(tài)(Suspended)。有的程序經(jīng)過特殊的請求后可以長期處于Backgroud狀態(tài)
Suspended 掛起 程序在后臺不能執(zhí)行代碼。系統(tǒng)會自動把程序變成這個狀態(tài)而且不會發(fā)出通知。當(dāng)掛起時,程序還是停留在內(nèi)存中的,當(dāng)系統(tǒng)內(nèi)存低時,系統(tǒng)就把掛起的程序清除掉,為前臺程序提供更多的內(nèi)存。
1348823833_6296.png
Snip20160317_4.png
各個程序運(yùn)行狀態(tài)時代理的回調(diào):
-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
告訴代理進(jìn)程啟動但還沒進(jìn)入狀態(tài)保存:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
告訴代理啟動基本完成程序準(zhǔn)備開始運(yùn)行
-(void)applicationWillResignActive:(UIApplication *)application
當(dāng)應(yīng)用程序?qū)⒁敕腔顒訝顟B(tài)執(zhí)行,在此期間,應(yīng)用程序不接收消息或事件,比如來電話了
-(void)applicationDidBecomeActive:(UIApplication *)application
當(dāng)應(yīng)用程序入活動狀態(tài)執(zhí)行,這個剛好跟上面那個方法相反
-(void)applicationDidEnterBackground:(UIApplication *)application
當(dāng)程序被推送到后臺的時候調(diào)用。所以要設(shè)置后臺繼續(xù)運(yùn)行,則在這個函數(shù)里面設(shè)置即可
-(void)applicationWillEnterForeground:(UIApplication *)application
當(dāng)程序從后臺將要重新回到前臺時候調(diào)用,這個剛好跟上面的那個方法相反。
-(void)applicationWillTerminate:(UIApplication *)application
當(dāng)程序?qū)⒁顺鍪潜徽{(diào)用,通常是用來保存數(shù)據(jù)和一些退出前的清理工作。這個需要要設(shè)置UIApplicationExitsOnSuspend的鍵值。
-(void)applicationDidFinishLaunching:(UIApplication*)application
Snip20160317_5.png
欲知道更詳細(xì)可以跳至http://blog.csdn.net/totogo2010/article/details/8048652