LruCache クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
限られた数の値への厳密な参照を保持するキャッシュ。
[Android.Runtime.Register("android/util/LruCache", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class LruCache : Java.Lang.Object
[<Android.Runtime.Register("android/util/LruCache", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type LruCache = class
inherit Object
- 継承
- 属性
注釈
限られた数の値への厳密な参照を保持するキャッシュ。 値にアクセスするたびに、キューの先頭に移動されます。 値が完全キャッシュに追加されると、そのキューの末尾にある値が削除され、ガベージ コレクションの対象になる可能性があります。
キャッシュされた値に、明示的に解放する必要があるリソースが保持されている場合は、 をオーバーライドします #entryRemoved
。
対応するキーに対して必要に応じてキャッシュ ミスを計算する必要がある場合は、 をオーバーライドします #create
。 これにより、呼び出し元のコードが簡略化され、キャッシュ ミスが発生した場合でも常に値が返されることを想定できます。
既定では、キャッシュ サイズはエントリの数で測定されます。 をオーバーライド #sizeOf
して、キャッシュのサイズを異なる単位で設定します。 たとえば、このキャッシュは 4MiB のビットマップに制限されます。
{@code
int cacheSize = 4 * 1024 * 1024; // 4MiB
LruCache<String, Bitmap> bitmapCache = new LruCache<String, Bitmap>(cacheSize) {
protected int sizeOf(String key, Bitmap value) {
return value.getByteCount();
}
}}
このクラスはスレッド セーフです。 キャッシュで同期することで、複数のキャッシュ操作をアトミックに実行します。
{@code
synchronized (cache) {
if (cache.get(key) == null) {
cache.put(key, value);
}
}}
このクラスでは、null をキーまたは値として使用することはできません。 または #remove
からの #get
#put
null の戻り値が明確です。キーがキャッシュに含まれていませんでした。
このクラスは、Android 3.1 (ハニカム MR1) に登場しました。これは、以前のリリースの Android のサポート パッケージの 一部として利用できます。
の Java ドキュメント android.util.LruCache
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
LruCache(Int32) | |
LruCache(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
限られた数の値への厳密な参照を保持するキャッシュ。 (継承元 Object) |
JniPeerMembers |
限られた数の値への厳密な参照を保持するキャッシュ。 |
PeerReference |
限られた数の値への厳密な参照を保持するキャッシュ。 (継承元 Object) |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
メソッド
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Create(Object) |
対応するキーの値を計算するためにキャッシュ ミスの後に呼び出されます。 |
CreateCount() |
値が返された回数 |
Dispose() |
限られた数の値への厳密な参照を保持するキャッシュ。 (継承元 Object) |
Dispose(Boolean) |
限られた数の値への厳密な参照を保持するキャッシュ。 (継承元 Object) |
EntryRemoved(Boolean, Object, Object, Object) |
削除または削除されたエントリに対して呼び出されます。 |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
EvictAll() |
削除された各エントリで を呼び出して |
EvictionCount() |
削除された値の数を返します。 |
Get(Object) |
キャッシュに存在する場合、または によって |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
HitCount() |
キャッシュに既に存在していた値が返された回数 |
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
MaxSize() |
をオーバーライド |
MissCount() |
null が返された回数、または新しい値を作成する必要がある回数 |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。 (継承元 Object) |
Put(Object, Object) |
の |
PutCount() |
呼び出された回数 |
Remove(Object) |
エントリが存在する場合は、 の |
Resize(Int32) |
キャッシュのサイズを設定します。 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
Size() |
をオーバーライド |
SizeOf(Object, Object) |
および のエントリのサイズを |
Snapshot() |
キャッシュの現在の内容のコピーを返します。このコピーは、最も最近アクセスされた順に並べ替えられます。 |
ToArray<T>() |
限られた数の値への厳密な参照を保持するキャッシュ。 (継承元 Object) |
ToString() |
このオブジェクトの人間が判読できる簡潔な説明を含む文字列を返します。 |
TrimToSize(Int32) |
残りのエントリの合計が要求されたサイズ以下になるまで、長いエントリを削除します。 |
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) |
限られた数の値への厳密な参照を保持するキャッシュ。 |