ORMLite 性能:ArrayAdapter vs CursorAdapter vs 自定义适配器

3

我有一个相对较小的H2数据库。我预计不会超过100个条目,即使这个数量看起来太多。

我有一个带有一些控件的列表视图,并使用ArrayAdapter调用QueryAll()来填充数据。它非常完美,因为我可以在按下按钮时修改内存中数组中的数据,然后将结果写入DB而无需重新加载它。但初始加载速度非常慢。

我想知道是否应该使用CursorAdapter,因为它似乎更适合这个问题,或者编写自定义适配器以利用DAO Iterator。

使用Cursor或自定义适配器会提高性能吗?在我看来,自定义适配器应该提供最佳性能。


我的建议是使用ORMLite,主要原因是在Android中,数据库工作的代码难以阅读和理解。但是使用ORMLite可以使代码更加易懂、直观。我有一个应用程序,在启动时就进行了数百次读写,只需要几秒钟的时间。性能不是问题,因为ORMLite有一种处理批处理的方式。至于你的ListView,如果性能是个问题,可以考虑使用延迟加载。然而,一个包含100个项目的ArrayList在内存中也不应该是一个问题。 - Ali
Leon,你能发一些关于你的结果的内容吗?我处于非常相似的情况。 - theblang
很遗憾,我最终放弃了这个项目,因此我没有任何指标可以分享。 - Leon
2个回答

5

当涉及到数据库时,CursorAdapter比ArrayAdapter更加适合,因为它不会像ArrayAdapter那样加载所有记录。它仅在listview中显示的记录数量在5到10之间才会加载。因此,我认为如果您使用CursorAdapter,就不会出现加载问题。

祝好


2

1
一个自定义适配器确实很有意义。我会试一试。我将放弃内容提供程序,因为我永远不需要从另一个进程访问数据。 - Leon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接