Comparteix via


SoftReference Clase

Definición

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

[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
Herencia
SoftReference
Atributos

Comentarios

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

Supongamos que el recolector de elementos no utilizados determina en un momento determinado que un objeto es accesible temporalmente. En ese momento, puede optar por borrar de forma atómica todas las referencias suaves a ese objeto y todas las referencias suaves a cualquier otro objeto accesible suavemente desde el que ese objeto sea accesible a través de una cadena de referencias seguras. Al mismo tiempo o en algún momento posterior, pondrá en cola las referencias suaves recién borradas registradas con colas de referencia.

Se garantiza que todas las referencias suaves a objetos accesibles temporalmente se han borrado antes de que la máquina virtual inicie un OutOfMemoryError. De lo contrario, no se colocan restricciones en el momento en que se borrará una referencia temporal o se borrará el orden en el que se borrará un conjunto de estas referencias a objetos diferentes. Sin embargo, se recomienda que las implementaciones de máquina virtual desactiven las referencias suaves creadas recientemente o usadas recientemente.

<h3>Evite referencias suaves para el almacenamiento en caché</h3> En la práctica, las referencias suaves son ineficaces para el almacenamiento en caché. El tiempo de ejecución no tiene suficiente información sobre qué referencias se deben borrar y cuáles mantener. Lo más grave es que no sabe qué hacer cuando se le da la opción de borrar una referencia suave y aumentar el montón.

La falta de información sobre el valor de la aplicación de cada referencia limita la utilidad de las referencias suaves. Las referencias que se borran demasiado pronto provocan un trabajo innecesario; aquellos que se borran demasiado tarde desperdician memoria.

La mayoría de las aplicaciones deben usar una android.util.LruCache en lugar de referencias suaves. LruCache tiene una directiva de expulsión efectiva y permite al usuario ajustar la cantidad de memoria asignada.

Agregado en la versión 1.2.

Documentación de Java para java.lang.ref.SoftReference.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

SoftReference(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

SoftReference(Object)

Crea una nueva referencia temporal que hace referencia al objeto especificado.

SoftReference(Object, ReferenceQueue)

Crea una nueva referencia temporal que hace referencia al objeto especificado y se registra con la cola especificada.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
IsEnqueued

Comprueba si este objeto de referencia está en su cola asociada, si existe.

(Heredado de Reference)
JniIdentityHashCode

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
JniPeerMembers

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

PeerReference

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

Clear()

Borra este objeto de referencia.

(Heredado de Reference)
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Dispose()

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
Dispose(Boolean)

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
Enqueue()

Agrega este objeto de referencia a la cola con la que está registrado, si existe.

(Heredado de Reference)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Get()

Devuelve el referente de este objeto de referencia.

(Heredado de Reference)
GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
RefersTo(Object)

Comprueba si el referente de este objeto de referencia es obj.

(Heredado de Reference)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
ToArray<T>()

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
IJavaPeerable.Finalized()

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

GetJniTypeName(IJavaPeerable)

Objetos de referencia temporal, que se borran a discreción del recolector de elementos no utilizados en respuesta a la demanda de memoria.

Se aplica a