android游标加载器与大型数据库

时间:2013-05-30 14:06:13

标签: android android-cursorloader android-anr-dialog large-data

我正在开发一个联系人应用程序,我需要支持大量的联系人。我只想说用户有10万个联系人。

要求是 1)带快速滚动的分段列表视图 2)使用名字或姓氏,电子邮件或电话号码搜索联系人作为用户类型

我在这里写了一个内容提供者,我有一个包含5列的表。

_id firstname lastname email phonenumber

我正在使用带有来自支持库的游标加载器的loadermanger回调来查询内容提供者。

但即时表示这个问题在表中有50000行。

1)ANR-使用此日志 - 可能是因为游标不断分配和释放堆内存

05-30 18:59:20.775: E/CursorWindow(13798): need to grow: mSize = 1048576, size = 54,     freeSpace() = 32, numRows = 8509
05-30 18:59:20.775: E/CursorWindow(13798): not growing since there are already 8509 row(s), max size 1048576
05-30 18:59:20.775: E/CursorWindow(13798): The row failed, so back out the new row accounting from allocRowSlot 8508
05-30 18:59:20.775: E/Cursor(13798): Failed allocating fieldDir at startPos 10537 row 8508

2)从适配器中删除部分代码似乎降低了ANR频率但仍然FASTSCROLL导致ANR。

3)搜索:它非常慢,因为我可以使用'FTS3'加速搜索,但这不是我的要求。我只需要在查询中使用“LIKE”或“CONTAINS”。

这是不可能达到这个要求的?谷歌家伙是怎么做到的?

0 个答案:

没有答案