2013-05-10 45 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,则不会出现加载问题。

问候