我正在开发一个联系人应用程序,我需要支持大量的联系人。我只想说用户有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”。这是不可能达到这个要求的?谷歌家伙是怎么做到的?