使用hashMap缓存保存数据

 

    private static final HashMap<Long, XXX> sCache = new HashMap<Long, XXX>();
    private static int sId = -1;
    
    public static void initAlbumArtCache() {
        try {
            。。。
            if (id != sId) {
                clearCache();
                sId = id; 
            }
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }

    public static void clearCache() {
        synchronized(sCache) {
            sCache.clear();
        }
    }
    
    public static XXX getCachedXXX(long Index, BitmapDrawable defaultBitmap) {
        XXX d = null;
        synchronized(sCache) {
            d = sCache.get(Index);
        }
        if (d == null) {
            。。。
            synchronized(sArtCache) {
                // the cache may have changed since we checked
                XXX value = sCache.get(Index);
                if (value == null) {
                    sCache.put(Index, d);
                } else {
                    d = value;
                }
            }
        }
        return d;
    }

  

posted @ 2011-12-16 12:06  Hecker385  阅读(2604)  评论(0)    收藏  举报