Android進程的優(yōu)先級問題

在安卓系統(tǒng)中:當系統(tǒng)內(nèi)存不足時,Android系統(tǒng)將根據(jù)進程的優(yōu)先級選擇殺死一些不太重要的進程,優(yōu)先級低的先殺死。進程優(yōu)先級從高到低如下:

前臺進程

  • 處于正在與用戶交互的activity
  • 與前臺activity綁定的service
  • 調(diào)用了startForeground()方法的service
  • 正在執(zhí)行oncreat(),onstart(),ondestroy方法的 service。
  • 進程中包含正在執(zhí)行onReceive()方法的BroadcastReceiver。

系統(tǒng)中的前臺進程并不會很多,而且一般前臺進程都不會因為內(nèi)存不足被殺死。特殊情況除外。當內(nèi)存低到無法保證所有的前臺進程同時運行時,才會選擇殺死某個進程。

可視進程

  • 為處于前臺,但仍然可見的activity(例如:調(diào)用了onpause()而還沒調(diào)用onstop()的activity)。典型情況是:運行activity時,彈出對話框(dialog等),此時的activity雖然不是前臺activity,但是仍然可見。
  • 可見activity綁定的service。(處于上訴情況下的activity所綁定的service)

可視進程一般也不會被系統(tǒng)殺死,除非為了保證前臺進程的運行不得已而為之。

服務(wù)進程

  • 已經(jīng)啟動的service

后臺進程

  • 不可見的activity(調(diào)用onstop()之后的activity)

后臺進程不會影響用戶的體驗,為了保證前臺進程,可視進程,服務(wù)進程的運行,系統(tǒng)隨時有可能殺死一個后臺進程。當一個正確實現(xiàn)了生命周期的activity處于后臺被殺死時,如果用戶重新啟動,會恢復(fù)之前的運行狀態(tài)。

空進程

  • 任何沒有活動的進程

系統(tǒng)會殺死空進程,但這不會造成影響??者M程的存在無非為了一些緩存,以便于下次可以更快的啟動。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,063評論 25 709
  • 如何能讓我們的應(yīng)用能夠在系統(tǒng)后臺持續(xù)地運行是一個自Android從娘胎里出來時就議論不停的話題,而且這似乎成了一個...
    駿駿的簡書閱讀 1,184評論 1 19
  • 作者: 強波 (阿里云OS平臺部-Cloud Engine)博客: http://qiangbo.space/...
    菜刀文閱讀 3,115評論 1 15
  • 什么是進程 進程(Process)是計算機中的程序關(guān)于某數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調(diào)度的基本單...
    晨起清風閱讀 1,987評論 0 5
  • 上次的國創(chuàng),這次的科研立項,上次的失敗,這次的成功。稍稍有些感慨,爽神出現(xiàn)兩次,成功兩次,而且每次都是以第一名的成...
    zhangrrrrrr閱讀 213評論 0 0

友情鏈接更多精彩內(nèi)容