IOS是偽多任務(wù)?
Android系統(tǒng)原生就支持多任務(wù),而IOS系統(tǒng)是從4開始的。它的多任務(wù)并不是傳統(tǒng)意義上的多任務(wù),不是任何應(yīng)用進(jìn)程都可以在后臺(tái)自由運(yùn)行。真正做到支持多任務(wù)的只有蘋果Safari和Mail,很多蘋果親生的應(yīng)用也都并不支持。
對(duì)于第三方應(yīng)用,可以開放的后臺(tái)運(yùn)行接口只有音頻播放(如QQ音樂(lè))、地理位置檢測(cè)(如谷歌地圖)和網(wǎng)絡(luò)電話(如Skype)等。
在IOS中,單擊Home鍵可以從應(yīng)用中退回桌面。之前運(yùn)行的應(yīng)用并不是被關(guān)閉了,而是被暫時(shí)“凍結(jié)”。已經(jīng)分配給它的資源仍然沒有收回,它是在運(yùn)行中的。當(dāng)你重新點(diǎn)擊應(yīng)用,就會(huì)立刻進(jìn)入,并恢復(fù)退出之前的狀態(tài)。這就是蘋果的快速切換應(yīng)用功能(fast app switching)
蘋果官網(wǎng)多任務(wù)解釋
雙擊Home鍵可以激活屏幕下方的夾層,后臺(tái)運(yùn)行的應(yīng)用都在這里。但并不是所有在這里出現(xiàn)的應(yīng)用都是后臺(tái)運(yùn)行的。
IOS的多任務(wù)可以分為三種:
1、保持退出時(shí)狀態(tài)
這種多任務(wù)只是一種看起來(lái)像多任務(wù)的單任務(wù),當(dāng)按下Home鍵時(shí),程序會(huì)保持狀態(tài)。待到下次呼出時(shí)便恢復(fù)保存時(shí)的狀態(tài),讓人看起來(lái)好像沒有退出過(guò)。就好像玩PSP上游戲的臨時(shí)存檔一樣,退出游戲之前存一下,再次進(jìn)入并讀檔后,這個(gè)臨時(shí)存檔就消失了。
2、有限多任務(wù)
在這種多任務(wù)下,按下Home鍵,程序會(huì)保存到內(nèi)存中,可以執(zhí)行一些系統(tǒng)允許的進(jìn)程,如音樂(lè)播放和下載等。這種多任務(wù)更快,但會(huì)占用內(nèi)存。
3、傳統(tǒng)意義多任務(wù)
Safari和Mail就是這種多任務(wù)。這種多任務(wù)可以讓程序在切換到后臺(tái)時(shí),無(wú)限制的做出動(dòng)作。對(duì)于移動(dòng)設(shè)備來(lái)說(shuō),如果不限制這樣的行為,任由程序在后臺(tái)隨意執(zhí)行,電量很快就會(huì)被用光。
有幾種情況下,應(yīng)用是真正完全退出了:1、系統(tǒng)為節(jié)省內(nèi)存而自動(dòng)終止某程序;2、用戶手動(dòng)長(zhǎng)按屏幕下方多任務(wù)欄中的應(yīng)用并關(guān)閉;3、尚沒為IOS系統(tǒng)重新編譯過(guò)的第三方應(yīng)用(如更新之前的ONE|一個(gè)),這種應(yīng)用無(wú)法被凍結(jié),所以退出即終止。
能夠在后臺(tái)運(yùn)行的應(yīng)用有限
之所以IOS系統(tǒng)會(huì)給人偽多任務(wù)的印象,是因?yàn)?a target="_blank">蘋果處于延遲續(xù)航時(shí)間等考慮,強(qiáng)制僅有少數(shù)幾種應(yīng)用能夠被授權(quán)在后臺(tái)運(yùn)行。大多數(shù)應(yīng)用在退出后會(huì)被掛起,掛起后的10秒鐘內(nèi),仍然占用著原來(lái)的資源,用以一些善后工作。
當(dāng)后臺(tái)的應(yīng)用過(guò)多,運(yùn)行內(nèi)存不夠時(shí),系統(tǒng)會(huì)自動(dòng)結(jié)束認(rèn)為最沒用的進(jìn)程,或是運(yùn)行最早的那個(gè)進(jìn)程。而那些被允許在后臺(tái)允許的應(yīng)用,系統(tǒng)會(huì)通過(guò)專門的API給予其永久后臺(tái)權(quán)限,直到狀態(tài)結(jié)束或用戶主動(dòng)關(guān)閉。
從多任務(wù)的定義上來(lái)看,IOS系統(tǒng)可以進(jìn)行多任務(wù)處理,但又不完全符合傳統(tǒng)意義的多任務(wù)。它需要掛起前一個(gè)進(jìn)程才能將操作分配給下一個(gè)進(jìn)程。但不管怎樣,它是支持多任務(wù)操作的。