在asyncTask的onPostExecute中显示另一个进度对话框

时间:2016-09-16 13:55:34

标签: android android-asynctask progressdialog

如何在ProgressDialog的{​​{1}}中显示另一个onPostExecute

AsyncTask

如何在@Override protected void onPreExecute() { super.onPreExecute(); pd = new ProgressDialog(context); pd.setMessage("Retrieving User Banks..."); pd.show(); } @Override protected void onPostExecute(String feed) { pd.dismiss(); ... } 方法中添加其他进度对话框?

我想在onPostExecute中显示另一个进度对话框。

我尝试了以下代码: -

onPostExecute

但它似乎不起作用。请对此有所了解。

注意:您可以放心地假设我的任务是对从网络调用中获得的一些结果进行排序并填充列表,我不希望UI在此操作完成之前为空。所以我想向用户显示一个进度对话框。

2 个答案:

答案 0 :(得分:0)

我建议您重复使用相同的进度对话框。我建议你做的是使用asyncTask的onProgressUpdate()方法,这个方法适用于主线程,所以你可以使用这个方法更新你的进度对话框,只需从doInbackground调用publishProgress(param)方法。例如。

假设我有两个Web服务,一个用于获取类别,另一个用于获取子类别。因此,如果我这样做,我将使用异步任务只有一个进度对话框,我将做的是每次都更新进度对话框的消息。

onPreExecute()
{

ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Please wait..");
progressDialog.show();
}
doInBackground()
{

// call webservice for fetching category

publishProgress("Loading categories");

// parse webservice result

// call webservice for fetching sub category

publishProgress("Loading Sub categories");

// parse webservice result

} 
onProgressUpdate(String[] args)
{

progressDialog.setMessage(args[0]);
}


onPostExecute()
{
progressDialog.dismiss();
}

答案 1 :(得分:0)

我遇到了同样的问题。我解决了此链接。 Good Luck :D

.splice

}