我的应用程序在 AsyncTask 中的进度对话框有问题:我AsyncTask
正在从 Internet 中获取一些数据doInBackGround()
,我正在开始进度对话框,在onPreExecute()
中完成对话框 onPostExecute()
。
单击按钮时,我执行此 asyncTask。第一次单击此按钮(发生长时间操作)时,未显示进度对话框。但下次进度对话框会正常显示。
第一次运行AsyncTask
时没有显示进度对话框可能是什么问题?
这是 onClick 方法:
public void onClickFind(View view){
new Task_Search().execute();
}
这是任务Task_Search
:
private class Task_Search extends AsyncTask<Void, Void, Void> {
@SuppressWarnings("deprecation")
protected void onPreExecute() {
showDialog(DIALOG_TASKING);
}
protected Void doInBackground(Void... unused) {
//some geting of web content here
}
@SuppressWarnings("deprecation")
protected void onPostExecute(Void unused) {
dismissDialog(DIALOG_TASKING);
}
}
进度对话框定义在MainActivity
:
@SuppressWarnings("deprecation")
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_TASKING:
mSearchDialog = new ProgressDialog(this);
mSearchDialog.setMessage("Searching for field number..");
mSearchDialog.setCancelable(true);
return mSearchDialog;
}
return super.onCreateDialog(id);
}
在使用之前,AsyncTask
我使用单独的线程来下载数据:在onClick
,我先启动progressDialog
然后线程,当线程完成时也progressDialog
停止,行为是相同的:第一次单击按钮对话框没有显示,下一次显示。
有谁能帮忙吗?