2010-06-21 24 views

回答

3

不要使用它。每個答案都有一個文檔問題:How to use Android's CacheManager?。將Context#getCacheDir用於特定於應用程序的緩存目錄。您必須自己完成所有緩存管理,但是,框架將在磁盤空間不足和管理應用程序卸載時管理內容。

+1

我曾嘗試在「此答案」鏈接上發佈的代碼。然而,我得到了一個java.lang.nullPointerException – Lynnooi 2010-06-22 02:03:28

+0

這行總是返回nullPointerException。我需要添加任何權限才能使用除INTERNET權限外的緩存嗎? CacheResult cache_result = CacheManager.getCacheFile(imageUrl,new HashMap()); – Lynnooi 2010-06-22 02:07:54

+0

不,我的意思是說你不應該使用CacheManager,而且它的文檔是錯誤的。它不適合在webkit之外使用。如果你想要一個簡單快速的緩存目錄,你需要使用'Context#getCacheDir'。 – Qberticus 2010-06-22 03:19:52

2

如果你要緩存大量的數據,你應該使用SD卡,而不是內存。所以你可以在SD卡上創建一個目錄並保存你的緩存。

File cacheDir; 
//Choose chache directory 
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
    cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"MyCache"); 
else 
    cacheDir=context.getCacheDir(); 
//File in cache directory 
File f=new File(cacheDir, "file.txt"); 
+0

如果我想將我的緩存存儲在SD卡中,我該怎麼做? – Lynnooi 2010-06-22 02:10:48

+0

有沒有我參考的例子?因爲我在android中很新。 – Lynnooi 2010-06-22 02:11:45

+0

增加了一些代碼 – Fedor 2010-06-22 04:20:07

1

有建議使用Context.getExternalCacheDir()。

此位置將僅適用於您的應用程序,當您從Android設備上卸載應用程序時,此API將會刪除此位置。爲了使用這一點,您必須在AndroidManifest.xml中輸入以下語句作爲AndroidManifest.xml中的條目

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
相關問題