2017-05-17 1 views
-1

J'utilise volley pour toutes mes connexions réseau. Pour le cache d'images, nous utilisons également la volée pour télécharger des images.Android - Image cache en utilisant volley

Nous utilisons ci-dessous classe pour les images de cache -

public class BitmapCache extends LruCache<String, Bitmap> implements 
     ImageCache { 
    public static int getDefaultLruCacheSize() { 
     final int maxMemory = (int) (Runtime.getRuntime().maxMemory()/1024); 
     final int cacheSize = maxMemory/8; 
     return cacheSize; 
    } 

    public BitmapCache() { 
     this(getDefaultLruCacheSize()); 
    } 

    public BitmapCache(int sizeInKiloBytes) { 
     super(sizeInKiloBytes); 
    } 

    @Override 
    protected int sizeOf(String key, Bitmap value) { 
     return value.getRowBytes() * value.getHeight()/1024; 
    } 

    @Override 
    public Bitmap getBitmap(String url) { 
     return get(url); 
    } 

    @Override 
    public void putBitmap(String url, Bitmap bitmap) { 
     put(url, bitmap); 
    } 
} 

Mais problème est que lorsque nous formerons app claire pile app (kill app), volley téléchargement mêmes images à nouveau. Je voulais le faire comme d'ici là, nous effacer le cache de l'image, il devrait être stocké dans l'emplacement du fichier de l'application (ne pas utiliser le stockage de carte SD). La bibliothèque de volley que nous utilisons qui n'a pas DiscLruCache. J'ai entendu parler de nombreux messages sur DiscLruCache, mais je ne sais pas comment nous pourrions utiliser mes restrictions pour ne pas changer la bibliothèque de volley que nous utilisons déjà.

+0

U peut également utiliser l'autre bibliothèque comme Universal ou Glide pour maintenir le cache –

Répondre