2013-05-10 43 views
3

我有相對較小的H2數據庫。我預計不會超過100個參賽作品,甚至會讓人覺得很高興。ORMLite性能:ArrayAdapter vs CursorAdapter vs自定義適配器

我有一些控件的列表視圖,並使用ArrayAdapter調用QueryAll()來填充數據。它可以完美地工作,因爲我可以在按下按鈕時修改內存中的數據,然後將結果寫入數據庫而不必重新加載它。但最初的負載是驚人的慢

我想知道的是我是否應該使用CursorAdapter,因爲它似乎更適合該問題或編寫自定義適配器來使用DAO迭代器。

使用Cursor或自定義適配器可以提高性能嗎?在我看來,感覺就像一個自定義適配器應該提供最好的性能。

+0

我的2位......我會用ORMLite,主要的原因是在android系統的DB工作的代碼是醜陋的,難以閱讀和理解。 ORMLight使得它更容易,代碼更直觀。我有一個應用程序可以讀取和寫入第二個數據,並且只需幾秒鐘即可完成。性能不是問題,因爲ORMLite有辦法處理批處理。至於你的'ListView'考慮延遲加載如果性能是一個問題,但是一個ArrayList在內存中有100個項目不應該成爲問題。 – Ali 2013-05-10 06:14:19

+0

Leon,你能發表任何關於你的結果嗎?我的情況非常相似。 – theblang 2013-11-04 14:59:34

+0

我結束了這個項目,很遺憾,我沒有可以分享的指標 – Leon 2013-11-07 12:07:00

回答

2

它更好地使用自定義適配器與 Content provider

+1

自定義適配器確實覺得它很有意義。我會放棄它。我將放棄Content Provider,因爲我將永遠不必訪問其他進程中的數據 – Leon 2013-05-10 06:39:53

5

當存在數據庫時,CursorAdapter更合適,因爲它不會將所有記錄加載爲ArrayAdapter。它僅加載ListView中的可見記錄介於5和10之間。 因此,我認爲如果您使用CursorAdapter,則不會出現加載問題。

問候