何謂進程模式?
Android 平臺的App,通常情況下都是單進程。
由於Android平臺資源有限,需要爲不同進程設置優先級,以便系統資源緊張的情況下,將優先級較低的進程殺死,以釋放資源。
因而,進程模式的存在就是爲了標記和區分進程的優先級
存在哪幾種進程模式?
按優先級從高到低,進程模式主要包括:
前景進程、可見進程、服務進程、背景進程、空白進程這5大類別
通常,App 進程的級別,由其活躍的或處於棧頂的組件的活動狀況(比如所處生命週期)決定。
1、前臺進程是用於目前操作所需的進程。在不同的情況下,進程可能因爲其所包含的各種應用組件而被視爲前臺進程。如果以下任一條件成立,就是前臺進程:
- 它在屏幕上運行了一個Activity(已調用 onResume())
- 它有一個BroadcastReceiver 正在運行(BroadcastReceiver.onReceive()在執行)
- 它有一個Service 目前正在執行某個回調的代碼(Service.onCreate()、Service.onStart()或者Serviece.onDestory())
2、可見進程
- Activity 在屏幕上對用戶可見,但是失去焦點,調用了(onPause()),暫時無法操作
- Service 正在通過Service.startForeground();
- 實現特定功能的系統服務:動態壁紙,輸入法服務
3、服務進程包含一個已使用startService()方法啓動的Service的進程。
4、背景進程
指退到後臺,目前不可見的進程,比如使用app的時候,按home鍵
5、空白進程
當系統需要內存的時候,會暫時將背景進程清除,就成爲了空白進程
參考博客:
https://xiaozhuanlan.com/topic/0213584967
https://developer.android.com/guide/components/activities/process-lifecycle
PS:我有微信讀書羣,有需求的私聊我