1

私のアプリはSQLiteDBにいくつかのデータを挿入し、アプリは挿入が成功したことを確認します。ただし、その後すぐに電源が切れた場合、モバイルデバイスが完全に再起動した後はデータが表示されません。

いくつかのキャッシュが行われているようです-どうすればバッファ/キャッシュを「フラッシュ」できますか?

注:sqlite dbは、SDカードではなくメインフラッシュメモリにあります。

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を呼び出すと、証書が作成され、アイテムがDBにコミットされます。トランザクションの成功の設定とトランザクションの終了の間にエラーが発生した場合でも、データベースにコミットするため、これが呼び出された直後にトランザクションを終了する必要があります。

うまくいけば、これはあなたを助けます!乾杯。

于 2012-10-05T01:22:33.590 に答える