我在我的应用程序中使用UIL lib,我从我的Amazon S3服务器获取图像。
我已经覆盖了BaseImageDownloader
类:
protected InputStream getStreamFromOtherSource(String imageId, Object extra)
throws IOException {
TransferManager manager = AmazonParams.getTransferManager();
File file = null;
GetObjectRequest req = new GetObjectRequest(AmazonParams.BUCKET, imageId);
try{
file = ImageLoader.getInstance().getDiscCache().get(imageId);
Download d = manager.download(req, file);
while (d.isDone() == false);
}catch (Exception e){
return null;
}
return new FileInputStream(file);
}
但是当我在服务器上遇到404错误(没有这样的图像)UIL,并且我返回null
时,UIL会一直重试加载图像。如果没有这样的图像,我希望不要再试一次。
答案 0 :(得分:2)
UIL不会重试图像加载本身。如果您返回 null ,那么您将获得
onLoadingFailed(...)
回调。如果您再次为displayImage(...)
拨打相同的网址,则UIL会尝试再次加载图片。
如果你想阻止它,那么你应该在某处保留“坏”URL而不是为这些URL调用ImageLoader,或者在ImageDownloader中为这些URL返回null。