sqlite db にデータを保存するアプリを作成しました。定期的にこのデータをサーバーに送信してから、sqlite でテーブルを切り捨てます (アプリがデバイスのスペースをいっぱいにしないように)。
SQLiteOpenHelper のシングルトン オブジェクトを使用しています (これはスレッド セーフです)。
だから私の質問は-次のコードは大丈夫ですか-
SQLiteOpenHelper openHelper = MyDBOpenHelper.getInsance();
SQLiteDatabase database = openHelper.getWritableDatabase();
database.beginTransaction();
Cursor cursor = database.rawQuery(SELECT_ALL_TABLE1_STMT, null);
while( cursor.moveToNext()) {
// save result in tmp list/buffer
}
database.execSQL(DELETE_ALL_TABLE1_STMT);
database.endTransaction();
database.setTransactionSuccessful();
// send data to server
// and repeat the process for rest of the tables.
同じテーブルに書き込もうとしている別のスレッドがある場合 (私が読んでいて、後で切り捨てられます)、上記のコードはそのシナリオを処理するのに問題ないように見えますか?
ありがとう!