使用adb + sqlite3(该工具),并在每次操作后查询数据库,我有一个应用程序,通过以下方式将一行插入my_conference:
ContentValues values = new ContentValues();
values.put("ITEM_ID", itemId);
values.put("ITEM_DATE", sessionDate);
mDb.beginTransaction();
mDb.insert("my_conference", null, values);
mDb.setTransactionSuccessful();
mDb.endTransaction();
然后我可以查询数据库并确保该行存在。然后,当我点击设备上的后退按钮并且活动返回到它之前的屏幕之后,我重新查询数据库并且它是空的,没有插入行。我在onDestroy()中没有对我的数据库做任何有趣的事情,只是调用db.close();
是什么给出了?
编辑:为了确保没有错误,并通过谷歌搜索结合我发现的其他内容,我想出了同样的事情,插入,然后在onDestroy()后删除:
ContentValues values = new ContentValues();
values.put("ITEM_ID", itemId);
values.put("ITEM_DATE", sessionDate);
try
{
mDb.beginTransaction();
mDb.insertOrThrow("my_conference", null, values);
mDb.setTransactionSuccessful();
}
catch( Exception e )
{
Log.e("DB", "EXCEPTION: " + e.getMessage() );
}
finally
{
mDb.endTransaction();
}
答案 0 :(得分:0)
所以事实证明我有一个糟糕的数据库存在检查,总是认为它不存在,所以数据库是在每次活动加载时重新创建的......