0

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.

同じテーブルに書き込もうとしている別のスレッドがある場合 (私が読んでいて、後で切り捨てられます)、上記のコードはそのシナリオを処理するのに問題ないように見えますか?

ありがとう!

4

1 に答える 1

0

ここからこれについてさらに入力する必要があります。

もちろん、さらに AsyncTask も。

于 2013-09-27T20:07:49.490 に答える