乐趣区

关于android:为什么安卓应用的UI更新只由主线程来做其他线程不能更新UI

1、当利用执行沉重的工作以响应用户交互时,除非您正确实现利用,否则这种单线程模式可能会导致性能低下。具体地讲,如果界面线程须要解决所有工作,则执行耗时较长的操作(例如,网络拜访或数据库查问)将会阻塞整个界面线程。一旦被阻塞,线程将无奈分派任何事件,包含绘图事件。从用户的角度来看,利用会显示为挂起状态。更蹩脚的是,如果界面线程被阻塞超过几秒钟工夫(目前大概是 5 秒钟),用户便会看到令人腻烦的“利用无响应”(ANR) 对话框。如果引起用户不满,他们可能就会决定退出并卸载此利用。

2、此外,Android 界面工具包并非线程平安工具包。所以您不得通过工作线程操纵界面,而只能通过界面线程操纵界面。因而,Android 的单线程模式必须恪守两条规定:

不要阻塞 UI 线程
不要在 UI 线程之外拜访 Android UI 工具包

退出移动版