使用Lrucache缓存



public class FileLoader {

    /**
     * 定义缓存对象
     */
    public LruCache fileLruCache;

    public FileLoader(){
        if (fileLruCache == null){
            //获取应用内存空间
            long maxMemory = Runtime.getRuntime().maxMemory();
            //获取到最大的缓存空间
            int cacheSize = (int) (maxMemory / 8);
            //创建缓存对象
            fileLruCache = new LruCache(cacheSize){
                @Override
                protected int sizeOf(String key, File value) {
                    return super.sizeOf(key, value);
                }
            };
        }
    }

    /**
     * 实现添加到缓存中
     * @param key
     * @param file
     */
    public void addFileToCache(String key, File file){
        if (getFileFromCache(key) == null){
            fileLruCache.put(key, file);
        }
    }

    /**
     * 从缓冲中获取文件
     * @param key
     * @return
     */
    public File getFileFromCache(String key){
        if (fileLruCache != null){
            return fileLruCache.get(key);
        }
        return null;
    }

    /**
     * 从缓存中移除文件
     * @param key
     */
    public void removeFromCache(String key){
        if (fileLruCache != null){
            fileLruCache.remove(key);
        }
    }

}

你可能感兴趣的:(使用Lrucache缓存)