一用戶點擊home鍵對程序的影響
用戶點擊了home鍵后趟径,對app有何影響,點擊app icon再次返回app后铃彰,又會對app有何影響;
之前有了解過芯咧,點擊home鍵退出后牙捉,系統(tǒng)會保存當(dāng)前系統(tǒng)的狀態(tài)竹揍,再次進入系統(tǒng),系統(tǒng)會重新按照之前的狀態(tài)繼續(xù)運行邪铲,不過實際操作中芬位,還是會讓然感覺很詭異,哪位前輩或者大牛带到,有關(guān)這方面的資料或者書晶衷,推薦一下也可以
點擊 home 鍵后,后臺加載圖片就停止了阴孟,如果你沒有實現(xiàn)蘋果提供的幾個方法晌纫,重新進入應(yīng)用是不會自動開始的,你要自己實現(xiàn)相關(guān)的方法永丝。具體見下文锹漱。
下文提到了 iOS 的應(yīng)用里的幾種狀態(tài):
active: 應(yīng)用在前臺正常運行
background: 應(yīng)用在后臺,并且在執(zhí)行代碼慕嚷。
inactive: 這個狀態(tài)是應(yīng)用從一個狀態(tài)向另一個狀態(tài)的過渡
suspended: 應(yīng)用在后臺哥牍,但不執(zhí)行代碼。應(yīng)用留在內(nèi)存里喝检,但隨時可能被系統(tǒng)清除嗅辣。進入這個狀態(tài)系統(tǒng)不會通知應(yīng)用。
應(yīng)用根據(jù)執(zhí)行的任務(wù)不同分為兩類:
需要執(zhí)行特殊的后臺任務(wù)(播放音頻挠说、定位等)應(yīng)用允許后臺運行澡谭,這些應(yīng)用在用戶按下 Home 鍵后會進入 background 狀態(tài)繼續(xù)運行。
其它應(yīng)用在按下 Home 鍵后短暫地進入 inactive 狀態(tài)损俭,然后緊接著就進入 background 狀態(tài)蛙奖。這時候系統(tǒng)會通知你,并且有幾秒鐘時間來做 clean-up杆兵。然后應(yīng)用就會進入 suspended 狀態(tài)雁仲。
當(dāng)再次進入你的應(yīng)用的時候(進入 active 狀態(tài)),取決于你的應(yīng)用之前的狀態(tài)琐脏,如果之前是 background 狀態(tài)攒砖,你將有機會重新啟動在進入 background 狀態(tài)時被暫停的任務(wù),其它情況下均相當(dāng)于重新啟動應(yīng)用日裙。
我假設(shè)你的應(yīng)用是第二種吹艇,你需要做的就是在從 active 進入 background 狀態(tài)時保存數(shù)據(jù),記錄下應(yīng)用狀態(tài)信息阅签,并且釋放盡可能多的空間掐暮;在從 background 進入 active 的時候接著執(zhí)行之前的任務(wù)。
有兩種方式:
實現(xiàn)回調(diào)函數(shù)
應(yīng)用在狀態(tài)之間轉(zhuǎn)換的時候政钟,會自動調(diào)用幾個相關(guān)的方法路克,你可以在這些方法里做數(shù)據(jù)保存之類的事情樟结,這些方法包括:applicationWillResignActive:(這個方法在應(yīng)用即將進入 background 狀態(tài)時被調(diào)用)、applicationDidEnterBackground:(這個方法在應(yīng)用進入 background 狀態(tài)后被調(diào)用精算,這個狀態(tài)下應(yīng)用會隨時進入 suspended 狀態(tài))瓢宦、applicationWillEnterForeground:(這個方法在從 background 進入 active 狀態(tài)時被調(diào)用)。
applicationDidEnterBackground: 這個方法是你需要的方法灰羽,需要注意的是系統(tǒng)只提供大約 5 秒的時間讓你完成工作驮履,超時的話這個方法會被系統(tǒng)強制返回,如果需要更多的處理時間廉嚼,可以調(diào)用 beginBackgroundTaskWithExpirationHandler: 這個方法來申請更多的運行時間玫镐,它會在后臺線程執(zhí)行,這個方法也只有有限的時間處理清理工作怠噪。詳細用法看文檔吧恐似。
監(jiān)聽通知
應(yīng)用在狀態(tài)之間轉(zhuǎn)換的時候,會發(fā)送通知傍念,你可以在相關(guān)的類里面注冊監(jiān)聽這幾個通知來做上面說的那些事情矫夷。
二 按home鍵可以推出程序,而不是暫停程序
as3開發(fā)ios應(yīng)用憋槐,如果用戶離開 AIR應(yīng)用程序双藕,該應(yīng)用程序會進入后臺并暫停。如果要讓應(yīng)用程序徹底退出而不是暫停阳仔,請將 UIApplicationExitsOnSuspend 屬性設(shè)置為 true :http://bbs.9ria.com/thread-108475-1-1.html