几天前我遇到了一个问题。我发现了一些类似的帖子,但仍然不理解我的代码的问题。
事实上,我正在读取一个包含 SQL 查询的文件(18,4Kbytes)。所以我唯一想做的就是读取文件并执行查询。
我读取文件没有问题,执行所有查询后会出现问题(如果我不执行它,它可以工作,但不是交易!)
所以这是我的代码(在 IO Exception 的 try / catch 之间):
InputStream in = ctx.getAssets().open("file.sql");
ByteArrayBuffer queryBuff = new ByteArrayBuffer(in.available());
String query = null;
int curent;
while (-1 != (curent = in.read())) {
queryBuff.append((char) curent);
if (((char) curent) == ';') {
query = new String(queryBuff.toByteArray());
db.execSQL(query);
queryBuff.clear();
query = null;
}
}
in.close();
queryBuff.clear();
我的 GC_CONCURENT 发生在循环结束后循环中有“新字符串”时。
谢谢 !
编辑:我有点恼火,因为我的内存泄漏没有发生在这部分代码中,而是发生在稍后执行的部分代码中(现在不知道是什么)但我的问题不是问题,应用程序实际上工作正常......对不起!