|
程序的生命周期 程序的生命周期是在Android系統(tǒng)中進(jìn)程從啟動到終止的所有階段,也就是Android程序啟動到停止的全過程 程序的生命周期由Android系統(tǒng)進(jìn)行調(diào)度和控制的 Android系統(tǒng)中的進(jìn)程優(yōu)先級由高到低 前臺進(jìn)程 可見進(jìn)程 服務(wù)進(jìn)程 后臺進(jìn)程 空進(jìn)程
前臺進(jìn)程 前臺進(jìn)程是Android系統(tǒng)中最重要的進(jìn)程,是與用戶正在交互的進(jìn)程,包含以下四種情況 進(jìn)程中的Activity正在與用戶進(jìn)行交互 進(jìn)程服務(wù)被Activity調(diào)用,而且這個Activity正在與用戶進(jìn)行交互 進(jìn)程服務(wù)正在執(zhí)行聲明周期中的回調(diào)函數(shù),如onCreate()、onStart()或onDestroy() 進(jìn)程的BroadcastReceiver正在執(zhí)行onReceive()函數(shù) Android系統(tǒng)在多個前臺進(jìn)程同時(shí)運(yùn)行時(shí),可能會出現(xiàn)資源不足的情況,此時(shí)會清除部分前臺進(jìn)程,保證主要的用戶界面能夠及時(shí)響應(yīng) 可見進(jìn)程 可見進(jìn)程指部分程序界面能夠被用戶看見,卻不在前臺與用戶交互,不響應(yīng)界面事件的進(jìn)程 如果一個進(jìn)程包含服務(wù),且這個服務(wù)正在被用戶可見的Activity調(diào)用,此進(jìn)程同樣被視為可見進(jìn)程 Android系統(tǒng)一般存在少量的可見進(jìn)程,只有在特殊的情況下,Android系統(tǒng)才會為保證前臺進(jìn)程的資源而清除可見進(jìn)程 服務(wù)進(jìn)程 服務(wù)進(jìn)程是指包含已啟動服務(wù)的進(jìn)程 沒有用戶界面 在后臺長期運(yùn)行 Android系統(tǒng)除非不能保證前臺進(jìn)程或可視進(jìn)程所必要的資源,否則不強(qiáng)行清除服務(wù)進(jìn)程 后臺進(jìn)程 后臺進(jìn)程是指不包含任何已經(jīng)啟動的服務(wù),而且沒有任何用戶可見的Activity的進(jìn)程 Android系統(tǒng)中一般存在數(shù)量較多的后臺進(jìn)程,在系統(tǒng)資源緊張時(shí),系統(tǒng)將優(yōu)先清除用戶較長時(shí)間沒有見到的后臺進(jìn)程 空進(jìn)程 空進(jìn)程是不包含任何活躍組件的進(jìn)程 空進(jìn)程在系統(tǒng)資源緊張時(shí)會被首先清除 q但為了提高Android系統(tǒng)應(yīng)用程序的啟動速度,Android系統(tǒng)會將空進(jìn)程保存在系統(tǒng)內(nèi)存用,在用戶重新啟動該程序時(shí),空進(jìn)程會被重新使用 除了以上的優(yōu)先級外,以下兩方面也決定他們的優(yōu)先級 進(jìn)程的優(yōu)先級取決于所有組件中的優(yōu)先級最高的部分 進(jìn)程的優(yōu)先級會根據(jù)與其他進(jìn)程的依賴關(guān)系而變化 |
|
|