Partager via


SoftReference Classe

Définition

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

[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
Héritage
SoftReference
Attributs

Remarques

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

Supposons que le garbage collector détermine à un moment donné qu’un objet est facilement accessible. À ce stade, il peut choisir d’effacer atomiquement toutes les références douces à cet objet et toutes les références réversibles à tout autre objet accessible de manière réversible à partir duquel cet objet est accessible via une chaîne de références fortes. En même temps ou à un moment donné, il met en file d’attente les références réversibles nouvellement effacées qui sont inscrites avec des files d’attente de référence.

Toutes les références réversibles aux objets accessibles de manière réversible sont garanties d’avoir été effacées avant que la machine virtuelle ne lève un OutOfMemoryError. Sinon, aucune contrainte n’est imposée au moment où une référence réversible sera effacée ou l’ordre dans lequel un ensemble de ces références à différents objets sera effacé. Toutefois, les implémentations de machines virtuelles sont encouragées à biaiser l’effacement des références réversibles récemment créées ou récemment utilisées.

<H3>Évitez les références réversibles pour la< mise en cache/h3> Dans la pratique, les références réversibles sont inefficaces pour la mise en cache. Le runtime n’a pas suffisamment d’informations sur les références à effacer et à conserver. La plupart irrécupérablement, il ne sait pas quoi faire lorsqu’on lui donne le choix entre effacer une référence douce et augmenter le tas.

Le manque d’informations sur la valeur de votre application de chaque référence limite l’utilité des références réversibles. Les références qui sont effacées trop tôt provoquent un travail inutile ; ceux qui sont effacés trop tard la mémoire des déchets.

La plupart des applications doivent utiliser une android.util.LruCache référence réversible au lieu de références réversibles. LruCache a une stratégie d’éviction efficace et permet à l’utilisateur de régler la quantité de mémoire allouée.

Ajouté dans la version 1.2.

Documentation Java pour java.lang.ref.SoftReference.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Constructeurs

SoftReference(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

SoftReference(Object)

Crée une référence réversible qui fait référence à l’objet donné.

SoftReference(Object, ReferenceQueue)

Crée une référence réversible qui fait référence à l’objet donné et est inscrite auprès de la file d’attente donnée.

Propriétés

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
IsEnqueued

Teste si cet objet de référence se trouve dans sa file d’attente associée, le cas échéant.

(Hérité de Reference)
JniIdentityHashCode

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
JniPeerMembers

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

PeerReference

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

Clear()

Efface cet objet de référence.

(Hérité de Reference)
Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Dispose()

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
Dispose(Boolean)

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
Enqueue()

Ajoute cet objet de référence à la file d’attente avec laquelle elle est inscrite, le cas échéant.

(Hérité de Reference)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
Get()

Retourne le référentiel de cet objet de référence.

(Hérité de Reference)
GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
RefersTo(Object)

Teste si le référentiel de cet objet de référence est obj.

(Hérité de Reference)
SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
ToArray<T>()

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
ToString()

Retourne une représentation de chaîne de l'objet.

(Hérité de Object)
UnregisterFromRuntime()

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

IJavaPeerable.Disposed()

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
IJavaPeerable.DisposeUnlessReferenced()

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
IJavaPeerable.Finalized()

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
IJavaPeerable.JniManagedPeerState

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

(Hérité de Object)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

GetJniTypeName(IJavaPeerable)

Objets de référence souples, qui sont effacés à la discrétion du garbage collector en réponse à la demande de mémoire.

S’applique à