关于android.view.ViewRoot$CalledFromWrongThreadException 异常
2013-04-07 19:34
471 查看
关于android.view.ViewRoot$CalledFromWrongThreadException 异常
在android移动开发中,进行多线程编程时,经常需要在主线程之外的一个单独的线程中进行某些操作,比如更新UI等操作。但是,在主线线程之外的线程中直接更新页面显示的问题是:系统会报这个异常,android.view.viewroot$calledfromwrongthreadexception:only the original thread that created a view hierarchy can touch its views.在主线程外的线程中更新UI时,通常会采用handler来处理。
以采用下面的方法之一来解决:
解决方案1:
在onCrete()函数中实现new GetLessonInfoThread().start();
//线程实现
class GetLessonInfoThread extends Thread {
@Override
public void run() {
try {
//相应操作。。。。
//此处发送消息
handler.sendEmptyMessage(0x001);
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
}
//handler的实现
private Handler handler = new Handler(){
@SuppressLint("ParserError")
public void handleMessage(Message msg) {
if (msg.what == 0x001) {
//更新UI的操作
}
};
};
解决方案2:利用activity.runonuithread(runnable)
把更新ui的代码创建在runnable中,然后在需要更新ui时,把这个runnable对象传给activity.runonuithread(runnable)。 这样runnable对像就能在ui程序中被调用。
相关文章推荐
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法
- android.view.ViewRoot$CalledFromWrongThreadException 异常的解决方案Activity类runOnUiThread方法
- android 异常处理:android.view.viewroot$calledfromwrongthreadexception
- 报异常:android.view.ViewRoot$CalledFromWrongThreadException
- android.view.ViewRootImpl$CalledFromWrongThreadException异常处理
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法
- Android编程中,发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- Android异常:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original
- Android异常:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original
- 子线程中处理UI,抛异常 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法 .
- 异常:android.view.ViewRootImpl$CalledFromWrongThreadException
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案(转载http://daydayup1989.iteye.com/blog/784831)
- android异常:android.view.ViewRootImpl$CalledFromWrongThreadException
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- Android android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常和loop循环的添加
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案