語言

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
繼承
屬性

備註

一個對有限數值有強烈參考的快取。 每次存取一個值時,它會被移到佇列的頂端。 當某個值被加入滿快取時,該佇列末端的值會被逐出,並可能有資格進行垃圾回收。

如果你的快取值包含需要明確釋放的資源,請覆寫 #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#remove 回傳 null 值是明確的:該金鑰不在快取中。

此類別出現在 Android 3.1(Honeycomb MR1);它是作為 Android 早期版本支援套件 的一部分提供。

Java 文件 android.util.LruCache

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
LruCache(Int32)

初始化一個最大大小的快取。

LruCache(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
JniPeerMembers

一個對有限數值有強烈參考的快取。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

方法

名稱 Description
Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
Create(Object)

在快取未命中後呼叫以計算對應鍵值。

CreateCount()

回傳回傳該值的次數 #create(Object)

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
EntryRemoved(Boolean, Object, Object, Object)

呼籲已淘汰或移除的參賽作品。

Equals(Object)

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
EvictAll()

清除快取,對每個移除的項目進行呼叫 #entryRemoved

EvictionCount()

回傳已被淘汰的數值。

Get(Object)

如果快取中存在,或可由 建立key,則回傳 的#create值。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
HitCount()

回傳 #get 快取中已存在的值回傳次數。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
MaxSize()

對於不會覆寫 #sizeOf的快取,會回傳快取中最大條目數。

MissCount()

回傳空值或需要建立新值的次數 #get

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Put(Object, Object)

valuekey

PutCount()

退回的次數是被呼叫的次數 #put

Remove(Object)

如果存在的話,移除 的 key 條目。

Resize(Int32)

設定快取大小。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
Size()

對於不覆寫 #sizeOf的快取,此會回傳快取中的條目數量。

SizeOf(Object, Object)

回傳 和 keyvalue 的條目大小(以使用者定義單位計算)。

Snapshot()

回傳快取目前內容的副本,依序從最近存取到最近存取排序。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳一個包含簡潔且人類可讀描述的字串。

TrimToSize(Int32)

移除最早的條目,直到剩餘條目總數等於或低於請求大小。

UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

一個對有限數值有強烈參考的快取。

(繼承來源 JavaObject)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一個對有限數值有強烈參考的快取。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於