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