android 不能在子线程中更新ui的讨论和分析

2017-11-30  本文已影响0人  詹玉龙Andy

做过android开发基本都遇见过 ViewRootImpl$CalledFromWrongThreadException,基本都是只能在主线程中更改 ui,

那么为什么不能呢,今天扒扒源码,自己记录一下

一般我们更新UI  setText() setImageView(), 都会调到ViewRootImpl checkThread();

checkThread();用来检测线程

if(mThread!= Thread.currentThread())  Thread.currentThread()是子线程,mThread是在构造函数中初始化的 Thread.currentThread()主线程,所以不能更新UI

上一篇下一篇

猜你喜欢

热点阅读