LruCache Класс

Определение

Кэш, содержащий строгие ссылки на ограниченное количество значений.

[Android.Runtime.Register("android/util/LruCache", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class LruCache : Java.Lang.Object
[<Android.Runtime.Register("android/util/LruCache", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type LruCache = class
    inherit Object
Наследование
LruCache
Атрибуты

Комментарии

Кэш, содержащий строгие ссылки на ограниченное количество значений. Каждый раз при доступе к значению оно перемещается в головку очереди. Когда значение добавляется к полному кэшу, значение в конце этой очереди вытесается и может стать подходящим для сборки мусора.

Если кэшированные значения содержат ресурсы, которые необходимо явно освободить, переопределите #entryRemoved.

Если промах кэша должен вычисляться по запросу для соответствующих ключей, переопределите #create. Это упрощает вызывающий код, позволяя ему предполагать, что значение всегда будет возвращаться, даже если кэш пропущен.

По умолчанию размер кэша измеряется в количестве записей. Переопределите #sizeOf размер кэша в разных единицах. Например, этот кэш ограничен 4 МиБ растровых изображений:

{@code
              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();
                  }
              }}

Этот класс является потокобезопасным. Выполните несколько операций с кэшем атомарно, синхронизируя его:

{@code
              synchronized (cache) {
                if (cache.get(key) == null) {
                    cache.put(key, value);
                }
              }}

Этот класс не позволяет использовать значение NULL в качестве ключа или значения. Возвращаемое значение NULL из #getили #put#remove является однозначным: ключа не было в кэше.

Этот класс появился в Android 3.1 (Honeycomb MR1); он доступен в составе пакета поддержки Android для более ранних выпусков.

Документация по Java для android.util.LruCache.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Конструкторы

LruCache(Int32)
LruCache(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
JniPeerMembers

Кэш, содержащий строгие ссылки на ограниченное количество значений.

PeerReference

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Create(Object)

Вызывается после промаха кэша для вычисления значения соответствующего ключа.

CreateCount()

Возвращает количество возвращаемых #create(Object) значений.

Dispose()

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
Dispose(Boolean)

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
EntryRemoved(Boolean, Object, Object, Object)

Вызывается для записей, которые были исключены или удалены.

Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
EvictAll()

Очистите кэш, вызывая #entryRemoved для каждой удаленной записи.

EvictionCount()

Возвращает количество вытеснили значений.

Get(Object)

Возвращает значение для , key если он существует в кэше или может быть создан с помощью #create.

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
HitCount()

Возвращает количество возвращаемых значений #get , которые уже присутствовали в кэше.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
MaxSize()

Для кэшей, которые не переопределяют #sizeOf, возвращается максимальное количество записей в кэше.

MissCount()

Возвращает число возвращаемых #get значений NULL или требуемое для создания нового значения.

Notify()

Пробуждает один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Пробуждает все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
Put(Object, Object)

Кэши value для key.

PutCount()

Возвращает количество вызовов #put .

Remove(Object)

Удаляет запись для , key если она существует.

Resize(Int32)

Задает размер кэша.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
Size()

Для кэшей, которые не переопределяют #sizeOf, возвращается количество записей в кэше.

SizeOf(Object, Object)

Возвращает размер записи для key и value в определяемых пользователем единицах.

Snapshot()

Возвращает копию текущего содержимого кэша, упорядоченного от последнего доступа к последнему доступу.

ToArray<T>()

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
ToString()

Возвращает строку, содержащую краткое и понятное описание этого объекта.

TrimToSize(Int32)

Удалите самые старшие записи, пока общее количество оставшихся записей не будет меньше запрошенного размера.

UnregisterFromRuntime()

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
Wait()

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

(Унаследовано от Object)
Wait(Int64)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Кэш, содержащий строгие ссылки на ограниченное количество значений.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенного средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Кэш, содержащий строгие ссылки на ограниченное количество значений.

GetJniTypeName(IJavaPeerable)

Кэш, содержащий строгие ссылки на ограниченное количество значений.

Применяется к