Lrucacheキャッシュの使用

1295 ワード



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);
        }
    }

}