SoftReference Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di 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
- Ereditarietà
- Attributi
Commenti
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria.
Si supponga che il Garbage Collector determini in un determinato momento in cui un oggetto sia raggiungibile in modo flessibile. In quel momento può scegliere di cancellare in modo atomico tutti i riferimenti soft a tale oggetto e tutti i riferimenti soft a qualsiasi altro oggetto raggiungibile in modo soft da cui tale oggetto è raggiungibile attraverso una catena di riferimenti sicuri. Allo stesso tempo o in un secondo momento, accoderà i riferimenti soft appena cancellati registrati con code di riferimento.
Tutti i riferimenti soft a oggetti raggiungibili in modo flessibile sono garantiti che siano stati cancellati prima che la macchina virtuale generi un oggetto OutOfMemoryError
. In caso contrario, non vengono impostati vincoli al momento in cui un riferimento soft verrà cancellato o l'ordine in cui verrà cancellato un set di tali riferimenti a oggetti diversi. Le implementazioni delle macchine virtuali, tuttavia, sono incoraggiate a distorsione rispetto alla cancellazione di riferimenti soft creati di recente o usati di recente.
<h3>Evitare riferimenti soft per la memorizzazione nella cache</h3> In pratica, i riferimenti soft sono inefficienti per la memorizzazione nella cache. Il runtime non dispone di informazioni sufficienti su quali riferimenti cancellare e quali conservare. Più fatalmente, non sa cosa fare quando viene data la scelta tra cancellare un riferimento morbido e crescere l'heap.
La mancanza di informazioni sul valore per l'applicazione di ogni riferimento limita l'utilità dei riferimenti soft. I riferimenti cancellati troppo presto causano lavoro non necessario; quelli che sono cancellati troppo tardi memoria di spreco.
La maggior parte delle applicazioni deve usare un anziché android.util.LruCache
riferimenti soft. LruCache ha un criterio di rimozione efficace e consente all'utente di ottimizzare la quantità di memoria assegnata.
Aggiunta nella versione 1.2.
Documentazione java per java.lang.ref.SoftReference
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Costruttori
SoftReference(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
SoftReference(Object) |
Crea un nuovo riferimento soft che fa riferimento all'oggetto specificato. |
SoftReference(Object, ReferenceQueue) |
Crea un nuovo riferimento soft che fa riferimento all'oggetto specificato e viene registrato con la coda specificata. |
Proprietà
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
IsEnqueued |
Verifica se questo oggetto di riferimento si trova nella coda associata, se presente. (Ereditato da Reference) |
JniIdentityHashCode |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
JniPeerMembers |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. |
PeerReference |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
Clear() |
Cancella questo oggetto di riferimento. (Ereditato da Reference) |
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
Dispose() |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
Dispose(Boolean) |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
Enqueue() |
Aggiunge questo oggetto riferimento alla coda con cui è registrato, se presente. (Ereditato da Reference) |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
Get() |
Restituisce il referenziale dell'oggetto di riferimento. (Ereditato da Reference) |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
RefersTo(Object) |
Verifica se il referenziale di questo oggetto di riferimento è |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
ToArray<T>() |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
ToString() |
Restituisce una rappresentazione di stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
IJavaPeerable.Finalized() |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
IJavaPeerable.JniManagedPeerState |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. (Ereditato da Object) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. |
GetJniTypeName(IJavaPeerable) |
Oggetti di riferimento soft, che vengono cancellati a discrezione del Garbage Collector in risposta alla richiesta di memoria. |