我需要在服务器关闭时处理错误。
我正在使用UIL填充包含带徽标图像的项目列表的回收站视图。每个列表项的每个图像徽标都存储在服务器中。当服务器启动时,每个都可以。服务器关闭时出现问题,UIL发出此错误:
E/ImageLoader: failed to connect to the.custom.server/XXX.XXX.XXX.XXX (port 80) after 5000ms: isConnected failed: EHOSTUNREACH (No route to host)
java.net.ConnectException: failed to connect to the.custom.server/XXX.XXX.XXX.XXX (port 80) after 5000ms: isConnected failed: EHOSTUNREACH (No route to host)
没关系,我知道服务器已关闭。我需要的是处理这个问题。我在哪里可以抓住这个错误来行动?
这是我的UIL配置:
private void setup() {
if(UniversalImageLoader.imageLoader!=null &&
UniversalImageLoader.imageLoader.isInited()){
UniversalImageLoader.imageLoader.destroy();
}
// UNIVERSAL IMAGE LOADER SETUP
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.resetViewBeforeLoading(true)
.cacheOnDisk(true)
.cacheInMemory(true)
.imageScaleType(ImageScaleType.EXACTLY)
.displayer(new FadeInBitmapDisplayer(300))
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(UniversalImageLoader.context)
.threadPoolSize(5)
.threadPriority(Thread.MIN_PRIORITY + 2)
.defaultDisplayImageOptions(defaultOptions)
.diskCacheFileNameGenerator(new ImageFileNameGenerator())
.build();
UniversalImageLoader.imageLoader = ImageLoader.getInstance();
UniversalImageLoader.imageLoader.init(config);
}
这是在Recycler视图适配器中加载图像的部分代码:
...
holder.ivImage.setImageBitmap(null);
if (_mCommerces.get(position).getUrlImageIcon() != null &&
!_mCommerces.get(position).getUrlImageIcon().equals("")) {
final File image = DiskCacheUtils
.findInCache(_mCommerces.get(position).getUrlImageIcon(),
UniversalImageLoader.imageLoader.getDiskCache());
if (image != null && image.exists()) {
Picasso.with(context).load(image).fit().centerCrop().into(holder.ivImage);
} else {
UniversalImageLoader.imageLoader
.loadImage(_mCommerces.get(position).getUrlImageIcon(),
new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {
holder.ivImage.setImageBitmap(null);
}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String s, View view, final Bitmap bitmap) {
Picasso.with(context).load(s).fit().centerCrop().into(holder.ivImage);
}
@Override
public void onLoadingCancelled(String s, View view) {
}
});
}
} else {
holder.ivImage.setImageBitmap(null);
}
...
非常适合你的时间。