【发布时间】:2011-06-23 09:14:50
【问题描述】:
我的活动中有一个下载一组文件的方法。当我开始一项新活动时,将进行此下载。我使用了线程,因为它会完全下载,而 AsyncTask 有时可能无法下载所有文件,它可能会卡在两者之间。
现在,下载时会显示黑屏。我想在 ProgressDialog 中显示它,以便用户感觉正在下载某些内容。
我添加了一个 ProgressDialog,但它没有显示。谁能告诉我哪里出错了?
下面是我的代码:
在onCreate()里面我写过:
downloadFiles();
private boolean downloadFiles() {
showProgressDialog();
for(int i = 0; i < filesList.size();i++) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//downloading code
});
thread.start();
thread.run();
}
dismissProgressDialog();
return true;
}
//ProgressDialog progressDialog; I have declared earlier.
private void showProgressDialog() {
progressDialog = new ProgressDialog(N12ReadScreenActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Downloading files...");
progressDialog.show();
}
private void dismissProgressDialog() {
if(progressDialog != null)
progressDialog.dismiss();
}
【问题讨论】:
-
也许这不能解决问题,但你为什么要调用thread.run()?您只需调用 thread.start() 即可创建线程。我一直在使用 AsyncTask 下载多个文件,使用它从来没有遇到任何问题,更新 UI 线程也不是一项艰巨的任务。