Activity生命週期前傳-Android 中的進程模式

何謂進程模式?

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:我有微信讀書羣,有需求的私聊我

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章