数日前から不具合でブロックしています。同様の投稿をいくつか見つけましたが、それでも自分のコードの問題を理解していませんでした。
実際、SQL クエリを含むファイル (18,4K バイト) を読み込んでいます。したがって、私がやりたいことは、ファイルを読み取ってクエリを実行することだけです。
ファイルの読み取りに問題はありません。すべてのクエリを実行した後に問題が発生します(実行しないと機能しますが、問題ではありません!)
だからここに私のコードがあります(try / catch for IO Exceptionの間):
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 が発生します。
ありがとう !
編集:メモリリークはコードのこの部分ではなく、後で実行されるコードの一部で発生したため(今のところはわかりません)、少しイライラしていますが、私の問題は問題ではありませんでした、アプリ実際には正常に機能しました...申し訳ありません!