new Thread(){
@Override
public void run() {
super.run();
SystemClock.sleep(1000);
tv.setText(“更新了”);
}
}.start();
老师问下这个为啥不报错,TextView 的setText()方法最终会到ViewRootImpl 中的
@Override
public void requestLayout() {
if (!mHandlingLayoutInLayoutRequest) {
checkThread();
mLayoutRequested = true;
scheduleTraversals();
}
}
然后checkThread()方法
void checkThread() {
if (mThread != Thread.currentThread()) {
throw new CalledFromWrongThreadException(
“Only the original thread that created a view hierarchy can touch its views.”);
}
}
这个获取的Thread并不是UI线程