在安卓系統中:當系統記憶體不足時,android系統將根據程序的優先順序選擇殺死一些不太重要的程序,優先順序低的先殺死。
程序優先順序從高到低如下
前台程序
處於正在與使用者互動的activity
與前台activity繫結的service
呼叫了startforeground()方法的service
正在執行oncreate(),onstart(),ondestroy方法的 service。
程序中包含正在執行onreceive()方法的broadcastreceiver。
系統中的前台程序並不會很多,而且一般前台程序都不會因為記憶體不足被殺死。特殊情況除外。當記憶體低到無法保證所有的前台程序同時執行時,才會選擇殺死某個程序。
可視程序
為處於前台,但仍然可見的activity(例如:呼叫了onpause()而還沒呼叫onstop()的activity)。典型情況是:執行activity時,彈出對話方塊(dialog等),此時的activity雖然不是前台activity,但是仍然可見。
可見activity繫結的service。(處於上訴情況下的activity所繫結的service)
可視程序一般也不會被系統殺死,除非為了保證前台程序的執行不得已而為之。
服務程序
已經啟動的service
後台程序
不可見的activity(呼叫onstop()之後的activity)
後台程序不會影響使用者的體驗,為了保證前台程序,可視程序,服務程序的執行,系統隨時有可能殺死乙個後台程序。當乙個正確實現了生命週期的activity處於後台被殺死時,如果使用者重新啟動,會恢復之前的執行狀態。
空程序
任何沒有活動的程序
系統會殺死空程序,但這不會造成影響。空程序的存在無非為了一些快取,以便於下次可以更快的啟動。
android 程序優先順序
程序 process 的優先順序 從高到低 前台程序 foreground process 1 當前使用者操作的activity所在程序 2 繫結了當前使用者操作的activity的service所在程序 3 呼叫了startforeground 的service 1 提高service優先順序的方...
Android程序優先順序
android將程序的優先順序分為5個層次,按照優先順序由高到低排列如下 前台程序 foreground process 它表明使用者正在與該程序進行互動操作,android系統依據下面的條件來將乙個程序標記為前台程序 可見程序 visible process 它表明雖然該程序沒有持有任何前台元件,...
Android程序優先順序
程序間的優先順序關係 執行耗時操作的程序選擇 參考資料 android在記憶體緊張的時候會對程序採取一定的策略來終止程序,而這些策略是往往是根據程序的優先順序來出處理的 優先順序由高到低排列 指正在與使用者進行互動的應用程序,該程序數量較少,是最高優先順序程序,系統一般不會終止該程序,而判斷為前台程...