SoftReference 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。
[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
- 繼承
- 屬性
備註
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。
假設垃圾收集行程會在某個時間點判斷物件可輕觸。 屆時,它可能會選擇清除該物件的所有不可部分完成的所有軟式參考,以及該物件可透過強式參考鏈結存取的任何其他可軟式參考。 同時或稍後,它會將那些向參考佇列註冊的新清除軟參考加入佇列。
在虛擬機擲回 OutOfMemoryError
之前,一定會清除所有可觸達對象的軟式參考。 否則,不會在清除軟式參考的時間,或清除一組這類對象參考的順序。 不過,鼓勵虛擬機實作偏向於清除最近建立或最近使用的軟式參考。
<h3>避免快取<的軟式參考/h3> 實際上,軟式參考對快取沒有效率。 運行時間沒有足夠的資訊可清除和保留哪些參考。 最致命的是,當選擇清除軟參考和增加堆積時,它並不知道該怎麼做。
每個參考應用程式的值資訊不足,會限制軟式參考的效用。 清除太早的參考會導致不必要的工作;那些被清除太晚的浪費記憶體的人。
大部分的應用程式都應該使用 android.util.LruCache
而非軟式參考。 LruCache 具有有效的收回原則,可讓使用者微調配置多少記憶體。
已在1.2中新增。
的 java.lang.ref.SoftReference
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
SoftReference(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
SoftReference(Object) |
建立參考指定物件的新軟式參考。 |
SoftReference(Object, ReferenceQueue) |
建立參考指定物件的新軟式參考,並且向指定的佇列註冊。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
IsEnqueued |
測試這個參考物件是否在其相關聯的佇列中,如果有的話。 (繼承來源 Reference) |
JniIdentityHashCode |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
JniPeerMembers |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 |
PeerReference |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
Clear() |
清除此參考物件。 (繼承來源 Reference) |
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
Dispose() |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
Dispose(Boolean) |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
Enqueue() |
如果有任何的話,請將這個參考物件加入至其註冊所在的佇列。 (繼承來源 Reference) |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
Get() |
傳回這個參考對象的參考。 (繼承來源 Reference) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
RefersTo(Object) |
測試這個參考物件的參考是否為 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ToArray<T>() |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 |
GetJniTypeName(IJavaPeerable) |
軟體參考物件,會根據垃圾收集行程的任意量值,以回應記憶體需求。 |