为什么只需要从应用程序主线程更新视图?

时间:2010-10-19 11:51:20

标签: android

很想知道不允许在Android中从后台线程更新UI元素的原因。

在更新UI元素之后,主线程是否会做更多事情(可能与框架交互),以便在屏幕上看到更改。?

与其他GUI工具包是否相同?

1 个答案:

答案 0 :(得分:3)

如果允许所有线程更新GUI对象,则必须将它们设计为线程安全(因为GUI必须跟踪其基础状态),引入围绕成员变量和其他共享资源的锁或关键部分。这会

  • 减慢GUI的速度
  • 使代码复杂化,
  • 无论如何都不是100%安全。

并发很难,任何框架设计师都必须妥协。现在,你需要确保在正确的线程中发生事情。无论如何,你应该将工作和通信任务与用户界面隔离开来,因此它并没有真正增加所有的责任。