本文实例讲述了Android实现在子线程中更新Activity中UI的方法。分享给大家供大家参考,具体如下:
在Android平台下,进行多线程编程时,经常需要在主线程之外的一个单独的线程中进行某些处理,然后更新用户界面显示。但是,在主线线程之外的线程中直接更新页面显示的问题是:系统会报这个异常:
ERROR/AndroidRuntime(1222): android.view.ViewRoot$CalledFromWrongThreadException: Only the original
一般情况下我们都说子线程不能更新UI,这里说的子线程可以更新UI,只是为了探讨子线程更新UI这个问题,第三种情况实现的子线程更新UI感觉并没有太大的使用意义,只是为了深刻认识更新UI的问题。
看下这个异常
android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
这个异常为何不是
Only the
为什么可以在子线程通过setText进行更新UI
void checkThread() {
if (mThread != Thread.currentThread()) {
throw new CalledFromWrongThreadException(
Only the original thread that created a view hierarchy can touch its views.);