我有我的AsyncTask内包含从Parse.com加载的数据的方法 我希望我的进度对话框显示,直到所有数据完全加载。AsyncTask进程对话框不显示当我启动我的活动
因此,如果数据需要5分钟才能加载,则进度对话框应显示确切的时间量,直到所有数据完成加载。
我已经尝试了许多其他不同的方法使用AsyncTask,仍然没有解决方案。
这是非常重要的任何人都可以帮我解决这个请
在我的主要Actvity的onCreate:
ProgressDialog progress = new ProgressDialog(this);
new MyTaskUpcomingShows(progress).execute();
我AsycTask随着进度对话框:
class MyTaskUpcomingShows extends AsyncTask<Void, Void, Void> {
ProgressDialog progress;
public MyTaskUpcomingShows(ProgressDialog progress) {
this.progress = progress;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progress.setMessage("Loading...");
progress.show();
}
@Override
protected Void doInBackground(Void... arg0) {
parseQueryUpcomingShowsEventsTable();
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
progress.dismiss();
}
}
附加信息:
当我试图做我的AsyncTask这种方式显示,但因为了Thread.sleep只有
private class BackgroundTask extends AsyncTask <Void, Void, Void> {
private ProgressDialog dialog;
public BackgroundTask(MyMainActivity activity) {
dialog = new ProgressDialog(activity);
}
@Override
protected void onPreExecute() {
dialog.setMessage("Doing something, please wait.");
dialog.show();
}
@Override
protected void onPostExecute(Void result) {
if (dialog.isShowing()) {
dialog.dismiss();
}
}
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
}
的事情是,如果我做这样的进度对话框不显示如果我删除了 Thread.sleep(5000)
此外,如果数据在5秒之前加载,进度对话框仍会旋转。它应该尽快将数据加载
你为什么要设置消息2倍? @casguapo –
需要看到progressdialog类 –
@Paudel我已经尝试过这种方式以及MyTaskUpcomingShows task = new MyTaskUpcomingShows(); task.execute();它仍然没有工作......我想这是一个错误设置消息两次,但我没有删除,并尝试这种方式,它仍然没有工作 – Equivocal