使用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();**
/*...*/
}
}
你能帮帮我吗?谢谢!答案 0 :(得分:0)
您正在尝试从非UI线程更新UI,即用于处理doInBackground()
的线程。请从onPreExecute()
,onProgressUpdate()
或onPostExecute()
更新您的用户界面。