0

我正在使用listview将超过 50 个项目存储到listview其工作中,但是在插入第 20 个项目后,日志猫中显示的错误是这样的。

08-02 12:50:34.646: E/CursorWindow(5245): not growing since there are already 16 row(s), max size 1048576
08-02 12:50:34.646: E/Cursor(5245): Failed allocating 69485 bytes for text/blob at 24,8
08-02 12:50:34.695: D/Cursor(5245): finish_program_and_get_row_count row 25
08-02 12:50:35.365: E/CursorWindow(5245): need to grow: mSize = 1048576, size = 69485, freeSpace() = 9795, numRows = 16
08-02 12:50:35.365: E/CursorWindow(5245): not growing since there are already 16 row(s), max size 1048576
08-02 12:50:35.365: E/Cursor(5245): Failed allocating 69485 bytes for text/blob at 23,8
08-02 12:50:35.396: D/Cursor(5245): finish_program_and_get_row_count row 26
08-02 12:50:35.896: D/Cursor(5245): skip_rows row 7
08-02 12:50:35.905: E/CursorWindow(5245): need to grow: mSize = 1048576, size = 69485, 
freeSpace() = 9795, numRows = 16
08-02 12:50:35.905: E/CursorWindow(5245): not growing since there are already 16 row(s), max size 1048576
08-02 12:50:35.905: E/Cursor(5245): Failed allocating 69485 bytes for text/blob at 22,8
08-02 12:50:35.936: D/Cursor(5245): finish_program_and_get_row_count row 27
08-02 12:50:36.425: D/Cursor(5245): skip_rows row 6
08-02 12:50:36.436: E/CursorWindow(5245): need to grow: mSize = 1048576, size = 69485, 
freeSpace() = 9795, numRows = 16

而且应用程序加载速度很慢。帮我。

4

1 回答 1

1

sqlite答案是,我们不能在 single 中从 db加载超过 1 MB 的数据Cursor。所以必须避免将大数据加载到列表项中。替代解决方案保留较大数据的任何唯一 ID,并按项目将其称为单个数据onClick List(为我工作)。

最好的解决方案是使用CursorJoiner并遵循此链接

如何将超过 1 MB 的数据从 sqlite db 加载到 android 游标?

Android SQL Lite 无法增长

于 2012-09-01T10:06:17.930 回答