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 或 #remove 回傳 null 值是明確的:該金鑰不在快取中。
此類別出現在 Android 3.1(Honeycomb MR1);它是作為 Android 早期版本支援套件 的一部分提供。
Java 文件 android.util.LruCache。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| LruCache(Int32) |
初始化一個最大大小的快取。 |
| LruCache(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| 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() |
回傳回傳該值的次數 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
一個對有限數值有強烈參考的快取。 (繼承來源 JavaObject) |
| EntryRemoved(Boolean, Object, Object, Object) |
呼籲已淘汰或移除的參賽作品。 |
| Equals(Object) |
一個對有限數值有強烈參考的快取。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| EvictAll() |
清除快取,對每個移除的項目進行呼叫 |
| EvictionCount() |
回傳已被淘汰的數值。 |
| Get(Object) |
如果快取中存在,或可由 建立 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| HitCount() |
回傳 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| MaxSize() |
對於不會覆寫 |
| MissCount() |
回傳空值或需要建立新值的次數 |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| Put(Object, Object) |
快 |
| PutCount() |
退回的次數是被呼叫的次數 |
| Remove(Object) |
如果存在的話,移除 的 |
| Resize(Int32) |
設定快取大小。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
一個對有限數值有強烈參考的快取。 (繼承來源 JavaObject) |
| Size() |
對於不覆寫 |
| SizeOf(Object, Object) |
回傳 和 |
| 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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個對有限數值有強烈參考的快取。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |