我创建了一个异步任务,并希望在doBackground的不同阶段更改进度对话框的消息。这是代码:
public class sc extends AsyncTask<Integer,String,Void>
{
ProgressDialog dialog;
protected void onPreExecute()
{
dialog=new ProgressDialog(Loc.this);
dialog.show();
}
@Override
protected Void doInBackground(Integer... params)
{
onProgressUpdate("Contacting server..Please wait..");
//Do some work
onProgressUpdate("Processing the result");
//Do some work
onProgressUpdate("Calculating..");
dialog.dismiss();
return null;
}
protected void onProgressUpdate(String ui)
{
dialog.setMessage(ui);
}
}
但是问题在于,进度对话框始终仅显示第一条消息。请帮助我找到解决方案。
最佳答案
protected Void doInBackground(Integer... params)
{
onProgessUpdate("Contacting server..Please wait..");
...
}
Urrrm,不,这是行不通的。
尝试...
publishProgress("Contacting server..Please wait..");
您必须在
doInBackground(..)
中“发布”才能调用onProgressUpdate(...)
。也不要在
dialog.dismiss()
中调用doInBackground(...)
,而是在onPostExecute(...)
中调用它。关于android - 在异步任务中难以更改进度对话框的消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9063112/