我有一项活动,可能需要在启动时加载数据。
我已经阅读了其他一些问题,所有这些都涉及将progressdialog传递给asycntask(like this one,它必须加载数据并在完成后将其关闭。由于方法getNewData,我的应用程序无法选择启动5个asynctasks并在完成后返回。
任何人都知道如何确保显示progressdialog? atm屏幕只是保持黑色,直到应用程序完成加载。
ProgressDialog pd = ProgressDialog.show(this, "Loading...", "Loading data", true);
dataCommunicator.getNewData(this);
pd.dismiss();
答案 0 :(得分:1)
您可以在其中使用主AsyncTask
,其他线程可以在doInBackground()
中运行。在此主progressDialog
AsyncTask
中显示onPreExecute()
。
维护一个int变量,该变量可以通过子AsyncTask
访问,并在子进程完成操作时更新其值。当该int等于5从主AsyncTask
doInBackground()
返回并取消progressDialog
中的onPostExecute()
时。