Universal Image Loader:java.net.ConnectException:无法连接到* server *

时间:2016-09-23 15:21:08

标签: android universal-image-loader

我需要在服务器关闭时处理错误。

我正在使用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);
    }

    ...

非常适合你的时间。

0 个答案:

没有答案