Sprache

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
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 gelöscht und kann zur Garbage Collection berechtigt werden.

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

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

Standardmäßig wird die Cachegröße in der Anzahl der Einträge gemessen. Überschreiben #sizeOf Sie die Größe des Caches in verschiedenen Einheiten. 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 aus, indem Sie den Cache synchronisieren:

{@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 war 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 auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

Name Beschreibung
LruCache(Int32)

Initialisiert einen Cache mit der angegebenen maximalen Größe.

LruCache(IntPtr, JniHandleOwnership)

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

Eigenschaften

Name Beschreibung
Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
JniIdentityHashCode

Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist.

(Geerbt von Object)
JniManagedPeerState

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

(Geerbt von JavaObject)
JniPeerMembers

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

PeerReference

Ruft den JNI-Objektverweis für diesen Java Peer ab.

(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

Name Beschreibung
Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

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

(Geerbt von JavaObject)
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 Werte #create(Object) zurück.

Dispose()

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
Dispose(Boolean)

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
DisposeUnlessReferenced()

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

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

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

Equals(Object)

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

(Geerbt von JavaObject)
Equals(Object)

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

(Geerbt von Object)
EvictAll()

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

EvictionCount()

Gibt die Anzahl der Werte zurück, die ausgeräumt wurden.

Get(Object)

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

GetHashCode()

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

(Geerbt von Object)
HitCount()

Gibt die Anzahl der #get Zurückgegebenen eines Werts zurück, der bereits im Cache vorhanden war.

JavaFinalize()

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

(Geerbt von Object)
MaxSize()

Bei Caches, die nicht außer Kraft setzen #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 benötigt einen neuen Wert, der erstellt werden soll.

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 #put zurück.

Remove(Object)

Entfernt den Eintrag, falls key vorhanden.

Resize(Int32)

Legt die Größe des Caches fest.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

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

(Geerbt von JavaObject)
Size()

Bei Caches, die nicht außer Kraft setzen #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, sortiert von der zuletzt verwendeten Version bis zum letzten Zugriff.

ToArray<T>()

Erstellt ein verwaltetes Array aus diesem Java Arraywrapper.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die eine präzise, lesbare Beschreibung dieses Objekts enthält.

TrimToSize(Int32)

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

UnregisterFromRuntime()

Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

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

(Geerbt von JavaObject)
IJavaPeerable.Finalized()

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

(Geerbt von JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

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

(Geerbt von JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Geerbt von JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Geerbt von JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(Geerbt von JavaObject)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: