爲什麼Android從4.0開始就不允許在非UI線程中進行UI操作?

爲什麼谷歌要提出:“UI更新一定要在UI線程裏實現”這一規則呢?
原因如下:
目的在於提高移動端更新UI的效率和和安全性,以此帶來流暢的體驗。
AndroidUI訪問是沒有加鎖的,多個線程可以同時訪問更新操作同一個UI控件。
也就是說訪問UI的時候,android系統當中的控件都不是線程安全的,這將導致在多線程模式下,當多個線程共同訪問更新操作同一個UI控件時容易發生不可控的錯誤,而這是致命的。所以Android中規定只能在UI線程中訪問UI,這相當於從另一個角度給AndroidUI訪問加上鎖,一個僞鎖。

main thread(主線程)也叫UI threadUI線程。
Android4.0開始就不允許在主線程連接網絡

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