
Snip20160317_1.png

Snip20160317_2.png

Snip20160317_3.png
應(yīng)用程序的狀態(tài)
Not running 未運(yùn)行 程序沒(méi)啟動(dòng)
Inactive 未激活 程序在前臺(tái)運(yùn)行,不過(guò)沒(méi)有接收到事件。在沒(méi)有事件處理情況下程序通常停留在這個(gè)狀態(tài)
Active 激活 程序在前臺(tái)運(yùn)行而且接收到了事件。這也是前臺(tái)的一個(gè)正常的模式
Backgroud 后臺(tái) 程序在后臺(tái)而且能執(zhí)行代碼,大多數(shù)程序進(jìn)入這個(gè)狀態(tài)后會(huì)在在這個(gè)狀態(tài)上停留一會(huì)。時(shí)間到之后會(huì)進(jìn)入掛起狀態(tài)(Suspended)。有的程序經(jīng)過(guò)特殊的請(qǐng)求后可以長(zhǎng)期處于Backgroud狀態(tài)
Suspended 掛起 程序在后臺(tái)不能執(zhí)行代碼。系統(tǒng)會(huì)自動(dòng)把程序變成這個(gè)狀態(tài)而且不會(huì)發(fā)出通知。當(dāng)掛起時(shí),程序還是停留在內(nèi)存中的,當(dāng)系統(tǒng)內(nèi)存低時(shí),系統(tǒng)就把掛起的程序清除掉,為前臺(tái)程序提供更多的內(nèi)存。

1348823833_6296.png

Snip20160317_4.png
各個(gè)程序運(yùn)行狀態(tài)時(shí)代理的回調(diào):
-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
告訴代理進(jìn)程啟動(dòng)但還沒(méi)進(jìn)入狀態(tài)保存:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
告訴代理啟動(dòng)基本完成程序準(zhǔn)備開(kāi)始運(yùn)行
-(void)applicationWillResignActive:(UIApplication *)application
當(dāng)應(yīng)用程序?qū)⒁敕腔顒?dòng)狀態(tài)執(zhí)行,在此期間,應(yīng)用程序不接收消息或事件,比如來(lái)電話了
-(void)applicationDidBecomeActive:(UIApplication *)application
當(dāng)應(yīng)用程序入活動(dòng)狀態(tài)執(zhí)行,這個(gè)剛好跟上面那個(gè)方法相反
-(void)applicationDidEnterBackground:(UIApplication *)application
當(dāng)程序被推送到后臺(tái)的時(shí)候調(diào)用。所以要設(shè)置后臺(tái)繼續(xù)運(yùn)行,則在這個(gè)函數(shù)里面設(shè)置即可
-(void)applicationWillEnterForeground:(UIApplication *)application
當(dāng)程序從后臺(tái)將要重新回到前臺(tái)時(shí)候調(diào)用,這個(gè)剛好跟上面的那個(gè)方法相反。
-(void)applicationWillTerminate:(UIApplication *)application
當(dāng)程序?qū)⒁顺鍪潜徽{(diào)用,通常是用來(lái)保存數(shù)據(jù)和一些退出前的清理工作。這個(gè)需要要設(shè)置UIApplicationExitsOnSuspend的鍵值。
-(void)applicationDidFinishLaunching:(UIApplication*)application

Snip20160317_5.png
欲知道更詳細(xì)可以跳至http://blog.csdn.net/totogo2010/article/details/8048652