【发布时间】:2014-05-14 18:51:47
【问题描述】:
这么简单的事情,但我遇到了一个大问题。
编辑:我希望我的 ProgressDialog 在其他类正在运行时运行 - 不要在 asyncTask 中调用,因为有多个 asyncTask 被调用。
我的主要活动(索引)调用另一个类 aTask,它调用 AsyncTask 从 Yelp 获取一些数据。当 aTask 返回数据时,index 开始一个新的活动。
我希望 index 在 aTask 运行时显示进度对话框。所以我使用来自here 的答案在索引中放置一个进度对话框。
但是,进度条只有在aTask完成后才会显示,完全违背了目的。
代码如下:
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ProgressDialog.show(IndexActivity.this, "Loading", "Wait while loading...");
ATask at = new ATask(preferencesMap, IndexActivity.this);
final ArrayList<Business> locations = at.getLocations();
Intent intent = new Intent(IndexActivity.this, BTask.class);
intent.putExtra("EXTRA_DIRECTIONS_STEPS", locations);
intent.putExtra("EXTRA_MAP_LOCATIONS", locations);
startActivity(intent);
}
});
【问题讨论】:
-
at.getLocations()应该做什么? -
它只是返回一个包含一些位置数据的业务对象的 ArrayList
-
我假设它调用
execute,然后调用get,因为你提到了异步任务? -
有趣 - 我刚刚意识到 ATask 本身不是异步任务,而是调用另一个类。我的主要问题是我希望进度对话框在 ATask 之前开始,并在它返回后结束
标签: android android-asynctask progressdialog