LruCache Classe

Definição

Um cache que contém referências fortes a um número limitado de valores.

[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
Herança
LruCache
Atributos

Comentários

Um cache que contém referências fortes a um número limitado de valores. Cada vez que um valor é acessado, ele é movido para o cabeçalho de uma fila. Quando um valor é adicionado a um cache completo, o valor no final dessa fila é removido e pode se tornar elegível para coleta de lixo.

Se os valores armazenados em cache mantiverem recursos que precisam ser liberados explicitamente, substitua #entryRemoved.

Se uma falha de cache deve ser computada sob demanda para as chaves correspondentes, substitua #create. Isso simplifica o código de chamada, permitindo que ele suponha que um valor sempre será retornado, mesmo quando houver uma falha de cache.

Por padrão, o tamanho do cache é medido no número de entradas. Substitua #sizeOf para dimensionar o cache em unidades diferentes. Por exemplo, esse cache é limitado a 4MiB de bitmaps:

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

Essa classe é thread-safe. Execute várias operações de cache atomicamente sincronizando no cache:

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

Essa classe não permite que nulo seja usado como uma chave ou valor. Um valor retornado de nulo ou #get#put#remove inequívoca: a chave não estava no cache.

Essa classe apareceu no Android 3.1 (Honeycomb MR1); ele está disponível como parte do Pacote de Suporte do Android para versões anteriores.

Java documentação para android.util.LruCache.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Construtores

Nome Description
LruCache(Int32)
LruCache(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Propriedades

Nome Description
Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
JniPeerMembers

Um cache que contém referências fortes a um número limitado de valores.

PeerReference

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Create(Object)

Chamado após uma falha de cache para calcular um valor para a chave correspondente.

CreateCount()

Retorna o número de vezes que #create(Object) um valor é retornado.

Dispose()

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
Dispose(Boolean)

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
EntryRemoved(Boolean, Object, Object, Object)

Chamado para entradas que foram removidas ou removidas.

Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
EvictAll()

Desmarque o cache, chamando #entryRemoved cada entrada removida.

EvictionCount()

Retorna o número de valores que foram removidos.

Get(Object)

Retorna o valor para key se ele existe no cache ou pode ser criado por #create.

GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
HitCount()

Retorna o número de vezes #get que retornou um valor que já estava presente no cache.

JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
MaxSize()

Para caches que não substituem #sizeOf, isso retorna o número máximo de entradas no cache.

MissCount()

Retorna o número de vezes #get retornado nulo ou requer um novo valor a ser criado.

Notify()

Ativa um único thread que está aguardando no monitor desse objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Put(Object, Object)

Caches value para key.

PutCount()

Retorna o número de vezes que #put foi chamado.

Remove(Object)

Remove a entrada para key se ela existir.

Resize(Int32)

Define o tamanho do cache.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
Size()

Para caches que não substituem #sizeOf, isso retorna o número de entradas no cache.

SizeOf(Object, Object)

Retorna o tamanho da entrada para e value em unidades definidas pelo key usuário.

Snapshot()

Retorna uma cópia do conteúdo atual do cache, ordenada de acesso menos recente ao acessado mais recentemente.

ToArray<T>()

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que contém uma descrição concisa e legível por humanos deste objeto.

TrimToSize(Int32)

Remova as entradas mais antigas até que o total de entradas restantes esteja em ou abaixo do tamanho solicitado.

UnregisterFromRuntime()

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
IJavaPeerable.Finalized()

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Um cache que contém referências fortes a um número limitado de valores.

(Herdado de Object)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Um cache que contém referências fortes a um número limitado de valores.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a