【发布时间】:2011-08-17 14:25:26
【问题描述】:
08-18 11:24:09.503: ERROR/AndroidRuntime(22649): Caused by: android.view.ViewRoot$CalledFromWrongThreadException: 只有创建视图层次结构的原始线程才能触摸其视图。
有什么解决办法吗? :/
【问题讨论】:
标签: android progress-bar
08-18 11:24:09.503: ERROR/AndroidRuntime(22649): Caused by: android.view.ViewRoot$CalledFromWrongThreadException: 只有创建视图层次结构的原始线程才能触摸其视图。
有什么解决办法吗? :/
【问题讨论】:
标签: android progress-bar
是的。
在非 UI 线程中无法触摸 UI,因此解决方案是在 runOnUiThread 中运行有问题的代码:
runOnUiThread(new Runnable() {
public void run() {
//your problematic code
}
});
【讨论】:
只有 UI 线程可以操作视图和东西。如果您在另一个线程中工作,请尝试使用 Handler 将更改发布到 UI 线程或切换到使用 AsyncTask
所以你已经在使用AsyncTask,所以你应该在onProgressUpdate() 的AsyncTask 中使用ProgressBar.setProgress()。覆盖此方法
【讨论】: