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