SoftReference Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 |
| 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 |
| 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. |