Buscar..


Observaciones

Debe usar Lru Cache en aplicaciones donde las cargas repetitivas de recursos afecten a un comportamiento suave de la aplicación. Por ejemplo, una galería de fotos con miniaturas grandes (128x128).

Siempre tenga cuidado con el tamaño de la memoria caché Lru, ya que su configuración demasiado alta podría afectar a la aplicación.

Después de que el Lru Cache ya no sea útil, evite mantener referencias al mismo para permitir que el recolector de basura lo limpie de la memoria.

Para obtener el mejor rendimiento, recuerde cargar recursos como mapas de bits usando las mejores prácticas, como seleccionar un inSampleSize adecuado antes de agregarlo a la memoria caché Lru.

Inicializando el caché

El Lru Cache almacenará todos los recursos agregados (valores) para un acceso rápido hasta que alcance un límite de memoria, en cuyo caso eliminará el recurso menos usado (valor) para almacenar el nuevo.

Para inicializar el caché Lru debe proporcionar un valor de memoria máximo. Este valor depende de los requisitos de su aplicación y de la importancia del recurso para mantener un uso sin problemas de la aplicación. Un valor recomendado para una galería de imágenes, por ejemplo, sería 1/8 de su memoria máxima disponible.

También tenga en cuenta que el Lru Cache funciona sobre una base de valor-clave. En el siguiente ejemplo, la clave es una String y el valor es un Bitmap :

int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
int cacheSize = maxMemory / 8;

LruCache<String, Bitmap> = memoryCache = new LruCache<String, Bitmap>(cacheSize) {
    protected int sizeOf(String key, Bitmap bitmap) {
        return bitmap.getByteCount();
    }
};

Agregar un mapa de bits (recurso) a la caché

Para agregar un recurso al caché, debe proporcionar una clave y el recurso. Primero asegúrese de que el valor no esté en el caché ya

public void addResourceToMemoryCache(String key, Bitmap resource) {
    if (memoryCache.get(key) == null)
        memoryCache.put(key, resource);
}

Obtención de un mapa de bits (respuesta) de la caché

Para obtener un recurso del caché, simplemente pase la clave de su recurso (Cadena en este ejemplo)

public Bitmap getResourceFromMemoryCache(String key) {
    memoryCache.get(key);
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow