Freigeben über


SoftReference Klasse

Definition

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

[Android.Runtime.Register("java/lang/ref/SoftReference", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public class SoftReference : Java.Lang.Ref.Reference
[<Android.Runtime.Register("java/lang/ref/SoftReference", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type SoftReference = class
    inherit Reference
Vererbung
SoftReference
Attribute

Hinweise

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

Angenommen, der Garbage Collector bestimmt zu einem bestimmten Zeitpunkt, dass ein Objekt vorläufig erreichbar ist. Zu diesem Zeitpunkt kann es sich entscheiden, alle weichen Verweise auf dieses Objekt und alle weichen Bezüge auf alle anderen weich erreichbaren Objekte zu löschen, von denen dieses Objekt über eine Kette starker Bezüge erreichbar ist. Gleichzeitig oder zu einem späteren Zeitpunkt werden die neu gelöschten weichen Verweise, die mit Referenzwarteschlangen registriert sind, abgefragt.

Alle weichen Verweise auf vorläufig erreichbare Objekte werden garantiert gelöscht, bevor der virtuelle Computer eine OutOfMemoryError. Andernfalls werden keine Einschränkungen für den Zeitpunkt festgelegt, zu dem ein weicher Bezug gelöscht wird, oder die Reihenfolge, in der eine Reihe solcher Verweise auf verschiedene Objekte gelöscht wird. Implementierungen virtueller Computer werden jedoch ermutigt, sich gegen das Löschen kürzlich erstellter oder kürzlich verwendeter Softverweise zu verzerren.

<h3>Vermeiden Sie weiche Verweise für Das Zwischenspeichern</h3> In der Praxis sind weiche Verweise für das Zwischenspeichern ineffizient. Die Laufzeit enthält nicht genügend Informationen dazu, welche Verweise klar sind und welche beibehalten werden sollen. Am tödlichsten weiß es nicht, was zu tun ist, wenn man die Wahl zwischen dem Löschen eines weichen Bezugs und dem Wachsen des Heaps hat.

Der Mangel an Informationen über den Wert für die Anwendung der einzelnen Verweise beschränkt die Nützlichkeit weicher Bezüge. Verweise, die zu früh gelöscht werden, verursachen unnötige Arbeit; diejenigen, die zu spät gelöscht werden, verschwenden Speicher.

Die meisten Anwendungen sollten anstelle von weichen Verweisen verwendet android.util.LruCache werden. LruCache verfügt über eine effektive Eviction-Richtlinie und ermöglicht es dem Benutzer zu optimieren, wie viel Arbeitsspeicher zugewiesen wird.

In 1.2 hinzugefügt.

Java-Dokumentation für java.lang.ref.SoftReference.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

SoftReference(IntPtr, JniHandleOwnership)

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

SoftReference(Object)

Erstellt einen neuen weichen Verweis, der auf das angegebene Objekt verweist.

SoftReference(Object, ReferenceQueue)

Erstellt einen neuen weichen Verweis, der auf das angegebene Objekt verweist und bei der angegebenen Warteschlange registriert ist.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

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

(Geerbt von Object)
IsEnqueued

Testet, ob sich dieses Referenzobjekt in der zugeordneten Warteschlange befindet, falls vorhanden.

(Geerbt von Reference)
JniIdentityHashCode

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
JniPeerMembers

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

PeerReference

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(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

Clear()

Löscht dieses Referenzobjekt.

(Geerbt von Reference)
Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Dispose()

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
Dispose(Boolean)

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
Enqueue()

Fügt dieses Referenzobjekt der Warteschlange hinzu, mit der es registriert ist, falls vorhanden.

(Geerbt von Reference)
Equals(Object)

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

(Geerbt von Object)
Get()

Gibt den Referent dieses Referenzobjekts zurück.

(Geerbt von Reference)
GetHashCode()

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

(Geerbt von Object)
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)
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)
RefersTo(Object)

Testet, ob der Referent dieses Referenzobjekts ist obj.

(Geerbt von Reference)
SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
ToArray<T>()

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(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)

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, 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)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
IJavaPeerable.Finalized()

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

GetJniTypeName(IJavaPeerable)

Soft reference objects, which are cleared at the discretion of the garbage collector in reaktion to memory demand.

Gilt für: