2012-02-05 72 views
3

我正在開發一款基本上載入新聞文章列表並在用戶點擊後在web視圖中打開它們的android應用程序。Android應用程序數據存儲量不斷增加

我想了解一下什麼是當我看着我的應用程序的細節在「設置 - >應用程序 - >管理應用程序」,總存儲容量不斷增加。特別是,數據存儲大小正在增加。應用程序的大小當然是固定的。

據我所知,sharedpreferences佔用數據存儲空間。我不知道還有什麼。在我的應用程序中,我只有1個複選框首選項和4個項目的列表首選項。

我還實現了onSaveInstanceState()方法,我只保存一個int值並在onCreate()期間再次讀取。

增加的數據存儲大小是正常的還是我錯過了什麼?也許應該有一些內存使用清理,我應該在我的代碼中做?

順便說一句,我的應用已相當由於網頁視圖緩存一些圖像可能是大緩存的大小,但我不知道是什麼讓數據存儲不斷增加。

+0

以線性速度增加嗎?還是偶爾增加?也就是說,如果你去一個網站,刷新它是否增加?如果你有100個網站,它會增加100個,還是會波動?試着弄清楚你是否泄漏了某些東西,或者如果它的Chrome緩存。緩存應該是零星的,可以進行測試。泄漏應該更穩定一些。 – ntkachov 2012-02-05 02:30:08

+0

我正在玩它,看我的數據大小如何變化。截至目前,我看到的是,當我在web視圖上加載頁面時,它會增加。但並非所有的時間。我的webview沒有刷新選項,所以我無法嘗試。緩存是否應該放在緩存大小(現在相當大)而不是數據大小? – 2012-02-05 02:37:18

+0

以下是尺寸如何變化的示例。我基本上加載了前5個數據的同一頁面(一個簡單的小文章網站)。最後一篇,我打開了一篇不同的文章(一個更大/更復雜的網站),對數據的改變要大得多。 數據\t緩存 520KB \t 5.53MB; 536KB \t 5.58MB; 540KB \t 5.60MB; 548KB \t 5.62MB; 552KB \t 5.64MB; 568KB \t 6.16MB; – 2012-02-05 02:50:42

回答

2

我知道這已經過了2年了,但對其他人可能有用。我發現,這個問題存在於WebView而不是在SharedPreferences 我有同樣的問題,並通過這種方式重寫onPause()方法解決:

private WebView wv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    wv = new WebView(this); 
    setContentView(wv); 
    wv.loadUrl("http://www.stackoverflow.com"); 
} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    wv.clearCache(true); 
} 

clearCache方法接受一個布爾參數,可以讓你指定是否您想要包含WebView存儲的磁盤文件。如果啓用它,您的數據使用量將顯着下降。希望能幫助到你!