第八周

android多線程與多進(jìn)程
一.Android進(jìn)程的分類:
(1)前臺(tái)進(jìn)程:即與用戶正在交互的Activity或者Activity用到的Service等,如果系統(tǒng)內(nèi)存不足時(shí)前臺(tái)進(jìn)程是最后被殺死的;
(2)可見(jiàn)進(jìn)程:可以是處于暫停狀態(tài)(onPause)的Activity或者綁定在其上的Service,即被用戶可見(jiàn),但由于失去了焦點(diǎn)而不能與用戶交互;
(3)服務(wù)進(jìn)程:其中運(yùn)行著使用startService方法啟動(dòng)的Service,雖然不被用戶可見(jiàn),但是卻是用戶關(guān)系的,例如用戶正在非音樂(lè)界面聽(tīng)的音樂(lè)或者正在非下載頁(yè)面自己下載的文件等;當(dāng)系統(tǒng)要用空間運(yùn)行前兩者進(jìn)程時(shí)才會(huì)被終止;
(4)后臺(tái)進(jìn)程:其中運(yùn)行著執(zhí)行onStop方法而停止的程序,但是卻不是用戶當(dāng)前關(guān)心的,例如后臺(tái)掛著的QQ,這樣的進(jìn)程系統(tǒng)一旦沒(méi)有內(nèi)存就首先被殺死;
(5)空進(jìn)程:不包含任何應(yīng)用程序的程序組件的進(jìn)程,這樣的進(jìn)程系統(tǒng)是一般不會(huì)讓他存在的;
二.進(jìn)程與多線程的深入
1.由于單線程而導(dǎo)致的ANR錯(cuò)誤:
ANR錯(cuò)誤(Application Not Responding),指主UI進(jìn)程被阻塞超過(guò)5秒鐘而出現(xiàn)的錯(cuò)誤,它會(huì)終止程序的正常運(yùn)行,我們要避免它 ,而產(chǎn)生ANR錯(cuò)誤的原因就是:?jiǎn)尉€程。
2.Android線程之間的通信——Handler
其實(shí),Android線程之間的通信不只是Handler,還需要Message,MessageQueue,Looper的相互使用,Android線程通信模型如下:

192914506.png

(1)Message:即要傳遞的消息;
(2)MessageQueue:存放消息的隊(duì)列;
(3)Looper:用于創(chuàng)建MessageQueue以及循環(huán)使用其中的Message;
(4)Handler:用于消息的傳遞了;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,140評(píng)論 25 708
  • 內(nèi)容來(lái)之網(wǎng)絡(luò),因?yàn)榭吹讲季痔珌y,重新整理下,并對(duì)答案做了一些修改。如果有侵權(quán),請(qǐng)給我私信。謝謝。 1.下列哪些語(yǔ)句...
    蝴蝶之夢(mèng)天使閱讀 1,700評(píng)論 2 22
  • 1.下列哪些語(yǔ)句關(guān)于內(nèi)存回收的說(shuō)明是正確的? (b )A、 程序員必須創(chuàng)建一個(gè)線程來(lái)釋放內(nèi)存 B、內(nèi)存回收程序負(fù)責(zé)...
    醉馬當(dāng)前闖閱讀 9,272評(píng)論 12 80
  • 需要有自己的作品,并且是有特色的作品!
    錢錢是我閱讀 241評(píng)論 0 0
  • 一見(jiàn)妮就笑閱讀 159評(píng)論 0 0

友情鏈接更多精彩內(nèi)容