2

数日前から不具合でブロックしています。同様の投稿をいくつか見つけましたが、それでも自分のコードの問題を理解していませんでした。

実際、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 が発生します。

ありがとう !

編集:メモリリークはコードのこの部分ではなく、後で実行されるコードの一部で発生したため(今のところはわかりません)、少しイライラしていますが、私の問題は問題ではありませんでした、アプリ実際には正常に機能しました...申し訳ありません!

4

0 に答える 0