从数据库管理6000多个联系人

时间:2011-01-08 17:44:09

标签: android optimization listview cursor custom-view

我有一个包含6000多个条目的数据库。我正在使用此示例http://eshyu.wordpress.com/2010/08/15/cursoradapter-with-alphabet-indexed-section-headers/来显示内容。但现在活动无法处理它。我每次都会得到一个ANR对话框。我如何有效地处理这种情况?

1 个答案:

答案 0 :(得分:1)

通过每个条目并向索引器询问该条目属于哪个部分是没有意义的。在您的情况下,索引器可能正在进行6000次二进制搜索。然后将结果放在一个地图中,该地图将有30个以下的条目,并进行多次覆盖。

滥用sectionToPosition Map来创建一个开始位置的部分也不是一个好主意。

一个。您要么准备一个包含统计数据的表格,这将是处理如此多数据的最佳方式。

B中。您可以使用数据库计算每个部分的条目数,并构建您自己的部分,从起始pos map。

SELECT UPPER(SUBSTR(LTRIM(side_a), 1, 1)), COUNT(*) FROM cards GROUP BY 1 ORDER BY 1 ASC;