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 回答