在AsyncTask的ProgressDialog中,无法在未调用Looper.prepare()的线程中创建处理程序。

10 浏览
0 Comments

在AsyncTask的ProgressDialog中,无法在未调用Looper.prepare()的线程中创建处理程序。

我不明白为什么会出现这个错误。我正在使用AsyncTask在后台运行一些进程。

我有:

protected void onPreExecute() 
{
    connectionProgressDialog = new ProgressDialog(SetPreference.this);
    connectionProgressDialog.setCancelable(true);
    connectionProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    connectionProgressDialog.setMessage("连接到网站中...");
    connectionProgressDialog.show();
    downloadSpinnerProgressDialog = new ProgressDialog(SetPreference.this);
    downloadSpinnerProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    downloadSpinnerProgressDialog.setMessage("下载壁纸中...");
}

当我进入doInBackground()根据条件,我会:

[...]    
connectionProgressDialog.dismiss();
downloadSpinnerProgressDialog.show();
[...]

每当我尝试downloadSpinnerProgressDialog.show()时,我会收到错误。

有什么想法吗?

0