做过android开发基本都遇见过 ViewRootImpl$CalledFromWrongThreadException,基本都是只能在主线程中更改 ui,
那么为什么不能呢,今天扒扒源码,自己记录一下
一般我们更新UI setText() setImageView(), 都会调到ViewRootImpl checkThread();
checkThread();用来检测线程
if(mThread!= Thread.currentThread()) Thread.currentThread()是子线程,mThread是在构造函数中初始化的 Thread.currentThread()主线程,所以不能更新UI
网友评论