Condividi tramite


LruCache Classe

Definizione

Cache che contiene riferimenti forti a un numero limitato di valori.

[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
Ereditarietà
LruCache
Attributi

Commenti

Cache che contiene riferimenti forti a un numero limitato di valori. Ogni volta che viene eseguito l'accesso a un valore, viene spostato nella testa di una coda. Quando un valore viene aggiunto a una cache completa, il valore alla fine della coda viene rimosso e può diventare idoneo per Garbage Collection.

Se i valori memorizzati nella cache contengono risorse che devono essere rilasciate in modo esplicito, eseguire l'override #entryRemoveddi .

Se un errore della cache deve essere calcolato su richiesta per le chiavi corrispondenti, eseguire l'override #createdi . Ciò semplifica il codice chiamante, consentendogli di presupporre che un valore venga sempre restituito, anche quando è presente una mancata cache.

Per impostazione predefinita, la dimensione della cache viene misurata nel numero di voci. Eseguire l'override per ridimensionare #sizeOf la cache in unità diverse. Ad esempio, questa cache è limitata a 4MiB di bitmap:

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

Questa classe è thread-safe. Eseguire più operazioni di cache in modo atomico sincronizzando nella cache:

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

Questa classe non consente l'uso di Null come chiave o valore. Valore restituito null da #geto #put#remove non ambiguo: la chiave non era nella cache.

Questa classe è apparsa in Android 3.1 (Honeycomb MR1); è disponibile come parte del pacchetto di supporto di Android per le versioni precedenti.

Documentazione Java per android.util.LruCache.

Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .

Costruttori

LruCache(Int32)
LruCache(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle all'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
JniPeerMembers

Cache che contiene riferimenti forti a un numero limitato di valori.

PeerReference

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Metodi

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Create(Object)

Chiamato dopo un errore della cache per calcolare un valore per la chiave corrispondente.

CreateCount()

Restituisce il numero di volte #create(Object) in cui è stato restituito un valore.

Dispose()

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
Dispose(Boolean)

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
EntryRemoved(Boolean, Object, Object, Object)

Chiamata per le voci che sono state rimosse o rimosse.

Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
EvictAll()

Cancellare la cache, chiamando #entryRemoved ogni voce rimossa.

EvictionCount()

Restituisce il numero di valori rimossi.

Get(Object)

Restituisce il valore per key se esiste nella cache o può essere creato da #create.

GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
HitCount()

Restituisce il numero di volte #get in cui è stato restituito un valore già presente nella cache.

JavaFinalize()

Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto.

(Ereditato da Object)
MaxSize()

Per le cache che non eseguono l'override, questo restituisce #sizeOfil numero massimo di voci nella cache.

MissCount()

Restituisce il numero di volte #get restituiti null o è necessario creare un nuovo valore.

Notify()

Riattiva un singolo thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
Put(Object, Object)

value Cache per key.

PutCount()

Restituisce il numero di volte #put in cui è stato chiamato.

Remove(Object)

Rimuove la voce per key se esiste.

Resize(Int32)

Imposta le dimensioni della cache.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
Size()

Per le cache che non eseguono l'override, questo restituisce #sizeOfil numero di voci nella cache.

SizeOf(Object, Object)

Restituisce le dimensioni della voce per key e value nelle unità definite dall'utente.

Snapshot()

Restituisce una copia del contenuto corrente della cache, ordinata da almeno recentemente a cui è stato eseguito l'accesso alla maggior parte degli ultimi accessi.

ToArray<T>()

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
ToString()

Restituisce una stringa contenente una descrizione concisa e leggibile dell'oggetto.

TrimToSize(Int32)

Rimuovere le voci più eldest fino a quando il totale delle voci rimanenti è a o sotto le dimensioni richieste.

UnregisterFromRuntime()

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
Wait()

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.<

(Ereditato da Object)
Wait(Int64)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
IJavaPeerable.Finalized()

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Cache che contiene riferimenti forti a un numero limitato di valori.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione dei tipi controllati dal runtime Android.

JavaCast<TResult>(IJavaObject)

Cache che contiene riferimenti forti a un numero limitato di valori.

GetJniTypeName(IJavaPeerable)

Cache che contiene riferimenti forti a un numero limitato di valori.

Si applica a