2011-01-24 129 views
0

我正在寫一個顯示listView(帶有圖像和一些文本)的應用程序。我寫了我的適配器,我recyle視圖和使用一個視圖,所有工作很好(但不是很順利)。安卓垃圾收集器信息

但是通過只顯示listview,我可以在LogCat中看到成千上萬個由gc釋放的對象(〜12000每3秒) 這似乎不太正常。

enter image description here

有沒有辦法知道什麼是班上最gced物體或某種氣相色譜的日誌(或數據)的?對於我來說,爲什麼我的應用程序是垃圾郵件立即gced新的對象?

回答

1

因爲我還不能評論,所以我添加了一個新的答案:-( 這一切都取決於你在適配器內部做了什麼,你寫的是你有XML數據,你在裏面解析嗎?DOM類產生難以置信的數量如果你必須解析DOM,在適配器之外進行並且/或者緩存結果。 另外,你所做的任何枚舉(例如:for (String x : xarray))都會產生大量的垃圾。 (考慮使用StringBuilder),儘量不要使用函數局部變量,把它們放到更多的全局作用域(如果不是,它的垃圾) 你可以在適配器中創建Bitmap對象,然後分配給ImageView?緩慢且大量垃圾。

我想這就是所有常見的垃圾和慢UI經驗的陷阱。任何人? ;)

問候, 奧利弗

1

這通常發生在您下載數據時 - 通過您的應用程序或任何應用程序。如果沒有,你需要提供正在運行的代碼,以便我們看看。

順便說一句,關於您的零接受做些事情。

+0

是所有顯示的數據被下載。 我的ArrayAdapter正在從列表工作,它是從我得到的xml文件構建的。但是我確信xml的url對於被緩存的圖像只會獲得一次和相同的結果。 – jpprade 2011-01-24 13:57:37