1

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

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

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

4

1 回答 1

1

嗨有人在某处,

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

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

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 。

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

希望这可以帮助你!干杯。

于 2012-10-05T01:22:33.590 回答