如果我知道我会有很多行/数据,那么我会运行一些简单的 SQL 调用来确定数据的大小。然后分解 Android 中的原始 JSON,以更小的块处理数据,在每个段之后提交。因此,在您的示例中,您知道您有 6000 多行 - 将其作为 int 存储在 Android 中的内存中,然后一次调用 1000 行。
进一步查询后的一些代码:
String locationCountPath = "http://mywebserver/countAllMD5UserLocations";
try {
//My method to return a count of locations
int locCount = MyJSONUtilities.countAllUsersLocations(
locationCountPath, MyJSONUtilities.writeUserDetailsJSON(
username.toUpperCase(), password));
// Compare new count with count on phone
if (countLocs != locCount && locCount > 0) {
try {
// Grab the new set of locations
askToSyncLocations();
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
因此,如果您将 askToSyncLocations() 方法替换为您自己的方式来处理循环中的 6000 多行,一次批处理 1000 行,它应该不会遇到任何内存问题?