为什么Android从4.0开始就不允许在非UI线程中进行UI操作?

为什么谷歌要提出:“UI更新一定要在UI线程里实现”这一规则呢?
原因如下:
目的在于提高移动端更新UI的效率和和安全性,以此带来流畅的体验。
AndroidUI访问是没有加锁的,多个线程可以同时访问更新操作同一个UI控件。
也就是说访问UI的时候,android系统当中的控件都不是线程安全的,这将导致在多线程模式下,当多个线程共同访问更新操作同一个UI控件时容易发生不可控的错误,而这是致命的。所以Android中规定只能在UI线程中访问UI,这相当于从另一个角度给AndroidUI访问加上锁,一个伪锁。

main thread(主线程)也叫UI threadUI线程。
Android4.0开始就不允许在主线程连接网络

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