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