在android中,为什么UI不能在UI线程外更新?
我知道我们应该在主线程中刷新 UI,如果我们想在另一个线程中更新 UI,我们可以使用 handler 、 blablabla ...
但是为什么呢?也许这和资源竞争有关?
任何帮助将不胜感激。
I know we should refresh UI in the main thread,and if we want to update UI in another thread we can use handler , blablabla...
but Why? Maybe it has some thing to do with resource competition?
Any help will be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这不仅仅存在于安卓系统中。基本上在每个 gui 框架中,ui 只能从 ui 线程更新。有关详细信息 为什么 UI 元素必须始终从 UI 线程创建/更新?
This is not only in android. In basically every gui framework the ui can be updated only from the ui thread. For more info Why must UI elements always be created/updated from the UI thread?
效率和响应能力。否则,您会得到不一致的数据并崩溃,或者整个 UI 必须不断锁定和解锁资源。您确实不会喜欢资源有限的移动设备上的此类用户界面的速度。
Efficiency and responsiveness. Otherwise, you'd get inconsistent data and crashes, alternatively, the whole UI would have to lock and unlock resources constantly. You really wouldn't like the speed of such a user interface on a resource constrained mobile device.
因为Android UI工具包不是线程安全的。因此,如果您不在 UI 线程上更新 UI,您可能会遇到难以追踪和修复的奇怪问题。
Because the Android UI toolkit is not thread-safe. So if you update the UI not on the UI thread you can experience weird problems that can be hard to track down and fix.