LruCache Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |
| 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 |
| 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 |
| EvictionCount() |
Gibt die Anzahl der Werte zurück, die ausgeräumt wurden. |
| Get(Object) |
Gibt den Wert zurück, für |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| HitCount() |
Gibt die Anzahl der |
| 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 |
| MissCount() |
Gibt die Anzahl der zurückgegebenen |
| 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 |
| PutCount() |
Gibt die Anzahl der Aufrufe |
| Remove(Object) |
Entfernt den Eintrag, falls |
| 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(Object, Object) |
Gibt die Größe des Eintrags für |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| 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 |