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