如果写入后不久断电,数据不会写入sqlite db

时间:2012-10-04 23:54:02

标签: android sqlite

我的应用将一些数据插入其SQLite数据库,应用程序确认插入成功。 但是,如果之后不久断电,则在移动设备完全重新启动后数据将不可见。

似乎有一些缓存正在进行 - 如何“刷新”缓冲区/缓存?

注意:sqlite db位于主闪存上,而不是sdcard上。

1 个答案:

答案 0 :(得分:1)

嗨某人,

如果要保证发生数据库写入,则应使用事务。

ie:这是一个可以构建的简单示例。

DatabaseHelper readDB = new DatabaseHelper(Context);
SQLiteDatabase db = readDB.getWritableDatabase();

String lastConnID = "1";
String DATABASE_TABLE = "TestDB";
String KEY_ROWID = "pkey";

db.beginTransaction();
db.update(DATABASE_TABLE, values, KEY_ROWID + "="
                    + "'" + lastConnID + "'", null);
db.setTransactionSuccessful();
db.endTransaction();

可以找到示例DatabaseHelperClass here

当您调用setTransactionSuccessful时,契约已完成,该项应提交给DB。您应该在调用此事务后立即结束事务,因为即使在设置事务成功和结束事务之间发生错误,它仍将提交到数据库。

希望这会对你有所帮助! 欢呼声。