Android中子线程真的不能更新UI吗?
参考: https://www.cnblogs.com/xuyinhuan/p/5930287.html
举例:,在onCreate方法中创建了一个子线程,并进行UI访问操作,譬如对textView进行操作,发现是没有问题的,并没有报错,但是如果你休眠了2000毫秒,那么此时就会报错:只有创建这个view的原始线程才能操作这个view;也就是ui线程才能修改ui;
为什么第一次没有问题?
ViewRootImpl的创建在onResume方法回调之后,而我们一开篇是在onCreate方法中创建了子线程并访问UI,在那个时刻,ViewRootImpl是没有创建的,无法检测当前线程是否是UI线程,所以程序没有崩溃一样能跑起来,而之后修改了程序,让线程休眠了200毫秒后,程序就崩了。很明显200毫秒后ViewRootImpl已经创建了,可以执行checkThread方法检查当前线程。