0

我正在解析一個XML文件,並將其解壓縮到長度爲504的數組。 數組中的每個項目都包含三個短字符串字段。有沒有任何優化的方式來渲染Android中的大型列表?

當我嘗試使用數組內容填充列表時,會發生此問題。 登錄貓顯示日誌這樣多次:

WAIT_FOR_CONCURRENT_GC阻塞9ms的

GC_CONCURRENT釋放202K,8%的遊離10694K/11527K,暫停12ms的+ 13毫秒,總52ms

正如我搜索,it means that a lot of objects are being created and they need a lot of memory

我回顧了我的代碼,並得出了這種情況發生在創建列表的時候的結論。因此,性能太低,無法在具有1024MB RAM的真實設備上使用該應用程序。

是否有任何優化的方式來渲染Android中的大型列表?

這是否提高了性能,如果我將xml提取到數據庫,然後創建列表?

+0

只是一個想法,在處理XML時可能是一個編碼問題嘗試使用這些類:XmlPullParser和XmlSerializer,或者您可能需要在工作線程上執行它。 – user2288580

回答

1

最好的解決方案是重新實現ArrayAdapter,已經有類似的問題here。 編輯:這來自谷歌I/O 2010 video它會給你一個ListViews如何工作的想法。

+0

我看了視頻,幫了我很多 –

+0

你提出的這個解決方案非常先進,但也很有用。我決定把我的大列表分成更小的列表,這樣當我試圖讓它們脫離它們時,我不會失去表現。 –