Android 从异步任务更新活动中的进度对话框

Android 从异步任务更新活动中的进度对话框,android,android-asynctask,progressdialog,Android,Android Asynctask,Progressdialog,在我的应用程序中,我按照Android教程的建议在AsyncTask中做了一些紧张的工作,并在我的主要活动中显示了一个ProgressDialog: dialog = ProgressDialog.show(MyActivity.this, "title", "text"); new MyTask().execute(request); class MyTask extends AsyncTask<Request, Void, Result> { @Override pr

在我的应用程序中,我按照Android教程的建议在
AsyncTask
中做了一些紧张的工作,并在我的主要活动中显示了一个
ProgressDialog

dialog = ProgressDialog.show(MyActivity.this, "title", "text");
new MyTask().execute(request);
class MyTask extends AsyncTask<Request, Void, Result> {

    @Override protected Result doInBackground(Request... params) {
        // do some intense work here and return result
    }

    @Override protected void onPostExecute(Result res) {
        postResult(res);
    }
}
其中,随后在
MyTask
中,我将结果发布回活动:

dialog = ProgressDialog.show(MyActivity.this, "title", "text");
new MyTask().execute(request);
class MyTask extends AsyncTask<Request, Void, Result> {

    @Override protected Result doInBackground(Request... params) {
        // do some intense work here and return result
    }

    @Override protected void onPostExecute(Result res) {
        postResult(res);
    }
}
所以这里一切都很好,但我想以某种方式更新进度对话框,以便能够向用户显示一些真实的进度,而不是虚假的“请稍候…”消息。我是否可以从
MyTask.doInBackground
访问进度对话框,所有工作都在该对话框中完成

据我所知,它是作为单独的线程运行的,因此我无法从那里“交谈”主要活动,这就是为什么我使用
onPostExecute
将结果推回到它。但是问题是,<>代码> OnPractEng/<代码>只在所有的工作已经完成时才被调用,并且我想更新在做某事中间的对话框。
有什么提示吗?

AsyncTask有一个方法
onProgressUpdate(Integer…
,例如,您可以调用每个迭代,或者每次在
doInBackground()过程中完成进度时调用
publishProgress()


有关更多详细信息,请参阅您可以从AsyncTask的方法
onProgressUpdate(您的进度)
进行更新,该方法可通过调用
publishProgress(您的进度)
doInBackground
方法调用 可以从
AsyncTask