2013-07-05 42 views
0

我想開發一個可以計算緩存大小的Android應用,到目前爲止我無法計算android中的所有應用緩存,但最近我遇到PackageStats類,問題與PackageStats類是有一個變量public long cacheSize它總是reurns 0,這裏是我的代碼在android中爲特定包計算緩存大小

PackageStats pStats = new PackageStats("/data/data/com.android.browser/cache"); 
System.out.println("Cache Size -> "+pStats.cacheSize); 

在這裏,我總是得到0實際上com.android.browser包的緩存大小是884KB 請幫我解決這個謎,謝謝提前。

回答

0

爲什麼不試試這個:

long f=0; 
File[] files = cacheDir.listFiles(); 
for (File f:files) { 
    size = size+f.length(); 

} 

編輯 請問波紋管的方法拋出異常?

getCacheDir().length() or getExternalCacheDir().length() 
+0

不行的,'力Close'來沉綿我跑在'AsyncTask'只有我得到強制關閉 –

+0

此代碼應不會啓動強制關閉代碼。也許別的東西正在造成它? – LTKD

+0

其實我在普通的java中檢查過它,它確實對我有用,但是當涉及到android時,它是一個概率。 –