登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

每日一问 | “必须在UI线程才能更新控件/界面” 这句人人皆知的话,100%正确吗?

鸿洋    2020-04-29 01:14   收藏

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
        at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:8066)
        at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:1297)
        at android.view.View.requestLayout(View.java:23147)
        at android.view.View.requestLayout(View.java:23147)

相信大家都见过这样的错误,而且拍大腿都知道,这个问题肯定是更新控件不在UI线程导致的。

你肯定有各种方式来解决。

但是我们今天就要问点你怀疑人生的问题:

  1. 真的只有UI线程才能更新界面UI吗?
  2. UI 线程更新界面UI有可能报上述错误吗?
  3. 请举例说明...
  4. 最好能附带源码解析。

自助提问入口:点击提交问题

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定