LruCache Klasse

Definition

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

[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
Vererbung
LruCache
Attribute

Hinweise

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält. Jedes Mal, wenn auf einen Wert zugegriffen wird, wird er an den Kopf einer Warteschlange verschoben. Wenn ein Wert einem vollständigen Cache hinzugefügt wird, wird der Wert am Ende dieser Warteschlange entfernt und kann für die Garbage Collection berechtigt sein.

Wenn Ihre zwischengespeicherten Werte Ressourcen enthalten, die explizit freigegeben werden müssen, überschreiben Sie #entryRemoved.

Wenn bei Bedarf für die entsprechenden Schlüssel ein Cachefehler berechnet werden soll, überschreiben Sie #create. Dadurch wird der aufrufende Code vereinfacht, sodass davon ausgegangen werden kann, dass immer ein Wert zurückgegeben wird, auch wenn ein Cachefehler vorliegt.

Standardmäßig wird die Cachegröße in der Anzahl der Einträge gemessen. Überschreiben Sie #sizeOf , um den Cache in verschiedenen Einheiten zu vergrößern. Dieser Cache ist beispielsweise auf 4MiB Bitmaps beschränkt:

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

Diese Klasse ist threadsicher. Führen Sie mehrere Cachevorgänge atomar durch Synchronisieren im Cache aus:

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

Diese Klasse lässt nicht zu, dass NULL als Schlüssel oder Wert verwendet wird. Ein Rückgabewert von NULL von #getoder #put#remove ist eindeutig: Der Schlüssel befand sich nicht im Cache.

Diese Klasse erschien in Android 3.1 (Honeycomb MR1); Es ist als Teil des Android-Supportpakets für frühere Versionen verfügbar.

Java-Dokumentation für android.util.LruCache.

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

LruCache(Int32)
LruCache(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Runtime aufgerufen.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Objectzurück.

(Geerbt von Object)
Handle

Das Handle zum zugrunde liegenden Android-instance.

(Geerbt von Object)
JniIdentityHashCode

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
JniPeerMembers

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

PeerReference

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Create(Object)

Wird nach einem Cachefehler aufgerufen, um einen Wert für den entsprechenden Schlüssel zu berechnen.

CreateCount()

Gibt die Anzahl der zurückgegebenen #create(Object) Werte zurück.

Dispose()

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
Dispose(Boolean)

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
EntryRemoved(Boolean, Object, Object, Object)

Wird für Einträge aufgerufen, die entfernt oder entfernt wurden.

Equals(Object)

Gibt an, ob ein anderes Objekt diesem "gleich" ist.

(Geerbt von Object)
EvictAll()

Löschen Sie den Cache, und rufen Sie für jeden entfernten Eintrag auf #entryRemoved .

EvictionCount()

Gibt die Anzahl der entfernten Werte zurück.

Get(Object)

Gibt den Wert für key zurück, wenn er im Cache vorhanden ist oder von #createerstellt werden kann.

GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
HitCount()

Gibt die Anzahl der zurückgegebenen #get Werte zurück, die bereits im Cache vorhanden waren.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

(Geerbt von Object)
MaxSize()

Für Caches, die nicht überschreiben #sizeOf, gibt dies die maximale Anzahl von Einträgen im Cache zurück.

MissCount()

Gibt die Anzahl der zurückgegebenen #get NULL-Werte zurück oder muss ein neuer Wert erstellt werden.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
Put(Object, Object)

Caches value für key.

PutCount()

Gibt die Anzahl der Aufrufe zurück #put .

Remove(Object)

Entfernt den Eintrag für key , sofern er vorhanden ist.

Resize(Int32)

Legt die Größe des Caches fest.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
Size()

Bei Caches, die nicht überschreiben #sizeOf, gibt dies die Anzahl der Einträge im Cache zurück.

SizeOf(Object, Object)

Gibt die Größe des Eintrags für key und value in benutzerdefinierten Einheiten zurück.

Snapshot()

Gibt eine Kopie des aktuellen Inhalts des Caches zurück, der von den letzten Zugriffen bis zum letzten Zugriff sortiert ist.

ToArray<T>()

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge mit einer präzisen, für Menschen lesbaren Beschreibung dieses Objekts zurück.

TrimToSize(Int32)

Entfernen Sie die ältesten Einträge, bis die Summe der verbleibenden Einträge auf oder unter der angeforderten Größe liegt.

UnregisterFromRuntime()

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel durch em benachrichtigen/em> oder <em>interrupted</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Für Android-Runtime überprüfte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

GetJniTypeName(IJavaPeerable)

Ein Cache, der starke Verweise auf eine begrenzte Anzahl von Werten enthält.

Gilt für: