2016-09-23 2 views
1

Ich verwende den Universal Image Loader für mein Projekt. Ich möchte eine bestimmte Aktion ausführen, wenn das Image vom Server geladen wurde, und nichts, wenn es aus dem Arbeitsspeicher oder dem Festplatten-Cache geladen wurde.Gibt es eine Möglichkeit zu wissen, wo ein Bild von UniversalLoader geladen wurde?

Bis jetzt ist die einzige Möglichkeit, dies zu tun, Ping Speicher und Disk-Cache im Voraus, um zu sehen, ob sie das Bild enthalten. Das ist nicht sehr nett, da, falls es nicht da ist, der normale Fluss zum Anzeigen des Bildes diese Überprüfungen wiederholt, so dass ich Anstrengungen verdopple.

Gibt es einen besseren Weg, dies zu tun? Ich sah im Code eine LoadedFrom Variable, die über verschiedene interne Methoden übergeben wird, aber nicht auf öffentlichen API zurückgegeben wird.

Antwort

1

können Sie diese Codes verwenden Bild gecached überprüfen oder nicht:

public static boolean checkCacheImageUri(String uri) { 
     List<String> findCacheKeysForImageUriThumbnail = MemoryCacheUtils.findCacheKeysForImageUri(
       uri, ImageLoader.getInstance().getMemoryCache()); 
     if (findCacheKeysForImageUriThumbnail != null 
       && !findCacheKeysForImageUriThumbnail.isEmpty()) { 
      return true; 
     } 
     return false; 
    } 
+0

Das wird nur sagen, ob das Bild im Speicher zwischengespeichert wird, aber mir nicht sagen, ob es auf der Festplatte zwischengespeichert :( – StackOverflower

Verwandte Themen