【发布时间】:2020-01-11 14:57:36
【问题描述】:
我正在从事一个项目,我需要从服务器的文件夹中下载文件。我有这个代码可以从网上下载一个图像。
public class GetImages extends AsyncTask<Object, Object, Object> {
private String requestUrl, imagename_;
private Bitmap bitmap ;
private FileOutputStream fos;
protected GetImages(String requestUrl, String _imagename_) {
this.requestUrl = requestUrl;
this.imagename_ = _imagename_ ;
}
@Override
protected Object doInBackground(Object... objects) {
try {
URL url = new URL(requestUrl+ imagename_);
URLConnection conn = url.openConnection();
bitmap = BitmapFactory.decodeStream(conn.getInputStream());
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
return null;
}
@Override
protected void onPostExecute(Object o) {
if(!ImageStorage.checkifImageExists(imagename_))
{
ImageStorage.saveToSdCard(bitmap, imagename_);
}
}
}
要下载单个图像,我会像这样调用 AsyncTask:
new GetImages(getString(R.string.link), "1.jpg").execute();
而且效果很好。问题是我想下载更多图片,所以我有这样的东西:
public void AdicionarImagem_Pasta() {
for (int i : arrayID) {
new GetImages(getString(R.string.link), i + ".jpg").execute();
}
}
由于某种原因,它不会下载任何东西,甚至第一个也不会。 有人知道如何解决这个问题吗? 感谢您的帮助和您的时间。
【问题讨论】:
-
该方法是否在第一次调用时被调用?另外,尝试通过
GetImages("your link").executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)并行执行AsyncTask -
感谢您的回复。我试过
new GetImages(getString(R.string.link), i + ".jpg").executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);但它不起作用
标签: java android image server download