LruCache
public
class
LruCache
extends Object
| java.lang.Object | |
| ↳ | android.util.LruCache<K, V> |
A cache that holds strong references to a limited number of values. Each time a value is accessed, it is moved to the head of a queue. When a value is added to a full cache, the value at the end of that queue is evicted and may become eligible for garbage collection.
If your cached values hold resources that need to be explicitly released,
override entryRemoved(boolean, K, V, V).
If a cache miss should be computed on demand for the corresponding keys,
override create(K). This simplifies the calling code, allowing it to
assume a value will always be returned, even when there's a cache miss.
By default, the cache size is measured in the number of entries. Override
sizeOf(K, V) to size the cache in different units. For example, this cache
is limited to 4MiB of bitmaps:
int cacheSize = 4 * 1024 * 1024; // 4MiB
LruCache<String, Bitmap> bitmapCache = new LruCache<String, Bitmap>(cacheSize) {
protected int sizeOf(String key, Bitmap value) {
return value.getByteCount();
}
}This class is thread-safe. Perform multiple cache operations atomically by synchronizing on the cache:
synchronized (cache) {
if (cache.get(key) == null) {
cache.put(key, value);
}
}This class does not allow null to be used as a key or value. A return
value of null from get(K), put(K, V) or remove(K) is
unambiguous: the key was not in the cache.
This class appeared in Android 3.1 (Honeycomb MR1); it's available as part of Android's Support Package for earlier releases.
Summary
Public constructors | |
|---|---|
LruCache(int maxSize)
|
|
Public methods | |
|---|---|
final
int
|
createCount()
< |