难以在异步任务中更改进度对话框的消息

roy*_*hew 5 android android-asynctask

我创建了一个异步任务,并希望在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);
        }


}
Run Code Online (Sandbox Code Playgroud)

但问题是,进度对话框只显示第一条消息.请帮我找到解决方案.

Squ*_*onk 8

protected Void doInBackground(Integer... params) 
{
    onProgessUpdate("Contacting server..Please wait..");
    ...
}
Run Code Online (Sandbox Code Playgroud)

Urrrm,不,这是行不通的.

尝试...

publishProgress("Contacting server..Please wait..");
Run Code Online (Sandbox Code Playgroud)

你必须" 发表在"你的进步doInBackground(..),以便onProgressUpdate(...)调用.

也不要叫dialog.dismiss()doInBackground(...)调用它onPostExecute(...)来代替.