Android:尝试在asynctask中显示进度条时出错

时间:2012-04-10 17:51:16

标签: android progressdialog

使用Android我尝试在asynctask中显示进度条时出错。我在粗线上有错误。变量 context 是应用程序的上下文,我敢肯定。这里有代码:

公共类UpdateDBTask扩展了AsyncTask {

ProgressDialog progressDialogListFiles;
ProgressDialog progressDialogUpdateDB;

protected void onPreExecute () {
    progressDialogUpdateDB = new ProgressDialog(context);
    progressDialogUpdateDB.setIndeterminate(false);
    progressDialogUpdateDB.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    progressDialogUpdateDB.setMessage("Analyzing files...");
    progressDialogUpdateDB.setCancelable(false);
    progressDialogUpdateDB.setProgress(0);

    progressDialogListFiles = new ProgressDialog(context);
    progressDialogListFiles.setIndeterminate(true);
    progressDialogListFiles.setMessage("Listing files...");
    progressDialogUpdateDB.setCancelable(false);
}

protected Boolean doInBackground(String... paths) { 
    updateDB(paths);
    return true;
}

protected void updateDB(String[] paths) {

    /*.....*/
        **progressDialogListFiles.show();**
    /*...*/
}

}

你能帮帮我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您正在尝试从非UI线程更新UI,即用于处理doInBackground()的线程。请从onPreExecute()onProgressUpdate()onPostExecute()更新您的用户界面。