爲什麼Android從4.0開始就不允許在主線程連接網絡?

main thread(主線程)也叫UI thread(UI線程)

爲什麼谷歌要提出:"請求網絡強制不允許在主線程中操作"這一規則呢?
原因如下:

比較耗時的工作比如訪問網絡或者數據庫查詢,會阻塞主線程,導致事件停止分發(包括繪製事件)。對於用戶來說,應用看起來像是卡住了,更壞的情況是,如果主線程blocked的時間太長(大約超過5秒),用戶就會看到ANR(application not responding)的對話框,用戶體驗極其不好。

那如何解決呢:

使用子線程

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