LruCache クラス

定義

限られた数の値への厳密な参照を保持するキャッシュ。

[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
継承
LruCache
属性

注釈

限られた数の値への厳密な参照を保持するキャッシュ。 値にアクセスするたびに、キューの先頭に移動されます。 値が完全キャッシュに追加されると、そのキューの末尾にある値が削除され、ガベージ コレクションの対象になる可能性があります。

キャッシュされた値に、明示的に解放する必要があるリソースが保持されている場合は、 をオーバーライドします #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

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 Object)
JniPeerMembers

限られた数の値への厳密な参照を保持するキャッシュ。

PeerReference

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

メソッド

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Create(Object)

対応するキーの値を計算するためにキャッシュ ミスの後に呼び出されます。

CreateCount()

値が返された回数 #create(Object) を返します。

Dispose()

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 Object)
Dispose(Boolean)

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 Object)
EntryRemoved(Boolean, Object, Object, Object)

削除または削除されたエントリに対して呼び出されます。

Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
EvictAll()

削除された各エントリで を呼び出して #entryRemoved 、キャッシュをクリアします。

EvictionCount()

削除された値の数を返します。

Get(Object)

キャッシュに存在する場合、または によって#create作成できる場合は、 の値keyを返します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
HitCount()

キャッシュに既に存在していた値が返された回数 #get を返します。

JavaFinalize()

ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
MaxSize()

をオーバーライド #sizeOfしないキャッシュの場合、キャッシュ内のエントリの最大数が返されます。

MissCount()

null が返された回数、または新しい値を作成する必要がある回数 #get を返します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。

(継承元 Object)
Put(Object, Object)

valuekeyキャッシュ。

PutCount()

呼び出された回数 #put を返します。

Remove(Object)

エントリが存在する場合は、 の key エントリを削除します。

Resize(Int32)

キャッシュのサイズを設定します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
Size()

をオーバーライド #sizeOfしないキャッシュの場合、キャッシュ内のエントリの数が返されます。

SizeOf(Object, Object)

および のエントリのサイズをkeyvalueユーザー定義単位で返します。

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)

限られた数の値への厳密な参照を保持するキャッシュ。

適用対象