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을 키 또는 값으로 사용할 수 없습니다. 에서 #get
#put
null의 반환 값이거나 #remove
명확하지 않습니다. 키가 캐시에 없습니다.
이 클래스는 Android 3.1(Honeycomb MR1)에 나타났습니다. 이전 릴리스에 대한 Android 지원 패키지의 일부로 사용할 수 있습니다.
에 대한 Java 설명서입니다 android.util.LruCache
.
이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
LruCache(Int32) | |
LruCache(IntPtr, JniHandleOwnership) |
JNI 개체의 관리형 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
속성
Class |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 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() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 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>)합니다<. (다음에서 상속됨 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) |
제한된 수의 값에 대한 강력한 참조를 보유하는 캐시입니다. |