0

我有一个活动,它在启动时可能需要加载数据。

我已经阅读了一些其他问题,它们都涉及将progressdialog传递给asycntask(比如这个必须加载数据并在完成后关闭它。这对我的应用程序来说是没有选择的,因为getNewData方法启动了5个异步任务和完成后返回。

有人知道我如何确保显示进度对话框吗?atm 屏幕一直保持黑色,直到应用程序完成加载。

ProgressDialog pd = ProgressDialog.show(this, "Loading...", "Loading data", true);
dataCommunicator.getNewData(this);
pd.dismiss();
4

1 回答 1

1

您可能有一个主AsyncTask线程,您可以在其中运行其他线程doInBackground()。显示progressDialog在这个 mainAsyncTask onPreExecute()中。

维护一个可以跨子访问的 int 变量,AsyncTask并在子完成其操作时更新其值。当该 int 等于 5 从 main 返回AsyncTask doInBackground()并关闭progressDialogin onPostExecute()

于 2012-06-18T10:20:53.923 回答