我在我的应用程序中使用 AsyncTask 来下载网址。我在 onPreExecute() 上使用 ProgressDialog 来等待。 但在进程完成时我看不到 ProgressDialog,我暂时看到了它。想在下载时看到它而不是下载后看到它。 谁能帮我。 谢谢 我的代码是这样的:
private class loadMoreListView extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
// Showing progress dialog before sending http request
pDialog = new ProgressDialog(SingleMenuItemActivity.this);
pDialog.setMessage("Please Wait ...");
pDialog.isIndeterminate();
pDialog.setCancelable(false);
pDialog.show();
}
protected Void doInBackground(Void... unused) {
runOnUiThread(new Runnable() {
public void run() {
// do something for downloading
}
});
return (null);
}
protected void onPostExecute(Void unused) {
// closing progress dialog
pDialog.dismiss();
}
}
最佳答案
runOnUiThread(new Runnable() {
public void run() {
// do something for downloading
}
//在 runOnUiThread 中执行下载操作,这是错误的。 runOnUiThread 使“执行下载操作”在 UI 线程上运行,并且您的应用程序应该因 NetworkOnMainThreadException 崩溃,而您的应用程序运行在 Android 版本高于 GingerBread 的设备上。不同的是,它会阻塞 ui 线程,阻止他绘制进度条
关于java - AsyncTask 在后台运行时看不到 ProgressDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25752210/