2014-11-18 4 views
8

Ich versuche, Bilder mit UIL in die Bitmaps zu laden. Ich muss mehrere Bilder laden, und mir ist aufgefallen, dass Bild-URLs in einigen Fällen identisch sein können. Und in solchen Fällen wird nur das erste Bild geladen. Wie kann man die Stornierung von Anfragen in UIL vermeiden?Android Universal Image Loader-Anfragen mit derselben URL werden abgebrochen.

-Code 3 mal in der Schleife laufen:

ImageSize targetSize = new ImageSize(70, 70); 
ImageLoader.getInstance().loadImage("http://icons.iconarchive.com/icons/yellowicon/game-stars/256/Mario-icon.png", targetSize, new ImageLoadingListener() { 
    @Override 
    public void onLoadingStarted(String imageUri, View view) { 
     Log.e("tag", "onLoadingStarted"); 
    } 

    @Override 
    public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 
     Log.e("tag", "onLoadingFailed"); 
    } 

    @Override 
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
     Log.e("tag", "onLoadingComplete"); 
    } 

    @Override 
    public void onLoadingCancelled(String imageUri, View view) { 
     Log.e("tag", "onLoadingCancelled"); 
    } 
}); 

Protokolle sind:

onLoadingStarted 
onLoadingStarted 
onLoadingStarted 
onLoadingComplete 
onLoadingCancelled 
onLoadingCancelled 
+0

Wechsel von loadImage zu displayImage und sehen, ob es funktioniert. Wenn Sie in dasselbe Imageview laden, wird das Laden abgebrochen, wenn eine andere Task dieses Imageview – mobilepotato7

Antwort

12

UIL vorherige displayImage(...) Aufgabe für das gleiche Image aufhebt.

UIL storniert vorherigen loadImage(...) Task für die gleiche URL.

Eigentlich arbeitet UIL in beiden Fällen mit ImageAware s im Inneren und vergleichen ImageAware.getId() zu entscheiden, Aufgabe abzubrechen oder nicht.

In Ihrem Fall zu verhindern Aufgabe Cancelling Sie so tun können:

ImageSize targetSize = new ImageSize(70, 70); 
ImageAware imageAware = new NonViewAware(targetSize, ViewScaleType.CROP); 
ImageLoader.getInstance().displayImage("http://icons...", imageAware, ...); 
+0

verarbeitet, aber wie für: 'loadImage (...)'? – user3871754

+1

Intern 'loadImage (...)' ist 'displayImage (...)' mit 'NonViewAware'. – NOSTRA

+1

Danke, das hat mein Leben gerettet. Es wäre jedoch nett, die Option in ImageLoaderConfig zu haben, um das Abbrechen zu verhindern. Seit ich dieses Problem mehrmals angetroffen habe, bin ich mir sicher auch anderen. – hadez30

0

Hallo Ich hatte auch gleiche Problem mit mehreren gleichen uri während gleichzeitig telefonieren. Ich habe Custom-Klasse entwickelt, die ImageLoader verwendet und das Problem löst

Verwandte Themen