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> 実際には、ソフト参照はキャッシュに対して非効率的です。 ランタイムには、どの参照をクリアし、どの参照を保持するかに関する十分な情報がありません。 最も致命的なのは、ソフト参照をクリアしてヒープを大きくするかの選択を考えると、何をすべきかわかりません。
各参照のアプリケーションに値に関する情報が不足しているため、ソフト参照の有用性が制限されます。 あまりにも早くクリアされた参照は、不要な作業を引き起こします。メモリを無駄にしすぎているものを削除します。
ほとんどのアプリケーションでは、ソフト参照の代わりに an を android.util.LruCache
使用する必要があります。 LruCache には効果的な削除ポリシーがあり、割り当てられているメモリの量をユーザーが調整できます。
1.2 で追加されました。
の Java ドキュメントjava.lang.ref.SoftReference
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
SoftReference(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
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() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
RefersTo(Object) |
この参照オブジェクトの参照先が |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
ToArray<T>() |
メモリの需要に応じてガベージ コレクターの判断でクリアされるソフト参照オブジェクト。 (継承元 Object) |
ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
UnregisterFromRuntime() |
メモリの需要に応じてガベージ コレクターの判断でクリアされるソフト参照オブジェクト。 (継承元 Object) |
Wait() |
現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</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) |
メモリの需要に応じてガベージ コレクターの判断でクリアされるソフト参照オブジェクト。 |