使用ProgressBar.setProgress(int)的问题

时间:2011-08-17 14:25:27

标签: android progress-bar

08-18 11:24:09.503:ERROR / AndroidRuntime(22649):引起:android.view.ViewRoot $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图。

有什么解决方案吗? :/

2 个答案:

答案 0 :(得分:3)

是。 您无法在非UI线程中触摸UI,因此解决方案是在runOnUiThread内运行有问题的代码:

runOnUiThread(new Runnable() {
    public void run() {
        //your problematic code
    }
});

答案 1 :(得分:3)

只有UI线程可以使用视图和内容进行操作。如果您正在使用其他线程,请尝试使用Handler发布更改以查看UI线程或切换为使用AsyncTask

因此您已使用AsyncTask,因此ProgressBar.setProgress() onProgressUpdate() AsyncTask内{{1}}。覆盖此方法