【发布时间】:2011-04-07 14:57:01
【问题描述】:
我的 AsyncTask 在下载图像时阻止了阻止按钮元素,并且进度对话框延迟显示 - 它会在图像显示之前显示一段时间,但下载需要很长时间并且按钮被阻止(橙色)并且未显示对话框。
public Bitmap download(String url, ProgressBar progressbar) throws InterruptedException, ExecutionException {
BitmapDownloaderTask task = new BitmapDownloaderTask(progressbar);
task.execute(url);
return task.get();
}
class BitmapDownloaderTask extends AsyncTask<String, Void, Bitmap> {
public BitmapDownloaderTask(ProgressBar progressbar) {
}
@Override
protected void onPreExecute() {
dialog = new ProgressDialog(ShowActivity.this);
dialog.setMessage("Loading");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
}
@Override
protected Bitmap doInBackground(String... Params) {
return imageLoader.getBitmap(params[0]);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
dialog.dismiss();
}
}
在按钮监听器中,只需调用下载函数,进度参数是因为我在imageview中有进度条圈-该对话框仅用于测试,以找出为什么会出现延迟和阻塞。在另一个应用程序中,我使用可运行且线程和元素未被阻止,但在教程中提到 AsyncTask 作为更好的解决方案。
【问题讨论】:
-
这是正确的做法,请查看此链接:android-ios-tutorials.com/182/…