我编写了一个在 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.
如果有另一个线程试图写入同一个表(我正在阅读,稍后将截断),那么上面的代码看起来可以处理这种情况吗?
谢谢!