RunOnUiThread的ProgressBar looper异常

时间:2016-09-25 04:54:52

标签: java android network-programming

当我为Android编写某种HTML下载程序时,我决定使用ProgressBar,但它抛出了java.lang.IllegalStateException: The current thread must have a looper!。我知道当一个函数需要在主线程上调用时抛出此异常,但我在runOnUiThread()内调用它。请查看下面的代码。

//Inside a worker thread's run()
progressbar.setInterminate(true); //No Exception here
//Connect and get InputStream.
progressbar.setMax(conn.getContentLength()); //No exception here, too
progressbar.setProgress(0); //No exception here.
runOnUiThread(new Runnable() {
    @Override
    public void run() {
        progressbar.setInterminate(false); //Exception here!
    }
});

我已尝试将setProgress()移到setInterminate(false)下方,但没有做任何事情。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我对编程很新,我对HTML下载器等一无所知,但我会尽力帮助。根据我的阅读,默认主线程是运行所有内容的地方,除非创建新的线程。那么,如果progress.setInterminate(false);progressbar.setProgress(0);旁边而不是新线程中会发生什么呢?