Share via


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을 키 또는 값으로 사용할 수 없습니다. 에서 #get#put null의 반환 값이거나 #remove 명확하지 않습니다. 키가 캐시에 없습니다.

이 클래스는 Android 3.1(Honeycomb MR1)에 나타났습니다. 이전 릴리스에 대한 Android 지원 패키지의 일부로 사용할 수 있습니다.

에 대한 Java 설명서입니다 android.util.LruCache.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

LruCache(Int32)
LruCache(IntPtr, JniHandleOwnership)

JNI 개체의 관리형 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 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)

캐시에 있거나 에서 만들 수 있는 경우 에 대한 key 값을 반환 #create합니다.

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
HitCount()

캐시에 이미 있는 값을 반환한 횟 #get 수를 반환합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
MaxSize()

를 재정 #sizeOf의하지 않는 캐시의 경우 캐시의 최대 항목 수를 반환합니다.

MissCount()

null을 반환하거나 새 값을 만들어야 하는 횟 #get 수를 반환합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
Put(Object, Object)

에 대한 캐시입니다 valuekey.

PutCount()

호출된 횟 #put 수를 반환합니다.

Remove(Object)

있는 경우 에 대한 key 항목을 제거합니다.

Resize(Int32)

캐시의 크기를 설정합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
Size()

를 재정 #sizeOf의하지 않는 캐시의 경우 캐시의 항목 수를 반환합니다.

SizeOf(Object, Object)

value 에 대한 key 항목의 크기를 사용자 정의 단위로 반환합니다.

Snapshot()

가장 최근에 액세스한 에서 가장 최근에 액세스한 캐시의 현재 콘텐츠 복사본을 반환합니다.

ToArray<T>()

제한된 수의 값에 대한 강력한 참조를 보유하는 캐시입니다.

(다음에서 상속됨 Object)
ToString()

이 개체에 대한 간결하고 사람이 읽을 수 있는 설명을 포함하는 문자열을 반환합니다.

TrimToSize(Int32)

나머지 항목의 합계가 요청된 크기 이하가 될 때까지 가장 오래된 항목을 제거합니다.

UnregisterFromRuntime()

제한된 수의 값에 대한 강력한 참조를 보유하는 캐시입니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 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)

제한된 수의 값에 대한 강력한 참조를 보유하는 캐시입니다.

적용 대상