5

将 10,000 行从 SQLite 数据库加载到内存中的最快方法是什么?每行有 1 个文本和 4 个整数。目前,我正在这样做:

while(!cursor.isAfterLast()) {
    cursor.copyStringToBuffer(column_index_1, buffer);
    cursor.copyStringToBuffer(column_index_2, buffer);
    cursor.copyStringToBuffer(column_index_3, buffer);
    cursor.copyStringToBuffer(column_index_4, buffer);
    cursor.copyStringToBuffer(column_index_5, buffer);
    cursor.moveToNext();
}

上面的代码在 Galaxy Nexus 上大约需要 750 毫秒。在较旧的设备上,它可能会慢几倍。我可以让它更快吗?

(此时,您可能正在输入类似“为什么需要将行加载到内存中?”这有点复杂,但如果有人感兴趣,我可以尝试解释。编辑:这是解释:https://gist .github.com/fhucho/af355d56ae3145e3e30f

4

1 回答 1

2

首先我建议你只加载前 1000 行,然后使用 AsyncTask 加载更多。

你可以在这里找到响应http://www.javasrilankansupport.com/2012/11/asynctask-android-example-asynctask-in.html

希望这有帮助

于 2013-06-10T13:23:58.460 回答