我们有一个奇怪的错误。如果电池电量耗尽,我们的应用程序将丢失数据(存储在SQLite中),但如果我们强行关闭应用程序然后电池电量耗尽,我们的应用程序将无法使用。电池耗尽时丢失数据
我们不确定是什么原因造成的。
编辑1:
它意味着什么松散数据?
- 当用户注册我们保存他的用户名等
- 当应用程序被关闭,强制关闭,在用户打开应用程序再次的用户名是有
- 当电池耗尽和应用程序在前台运行。电池充电并且用户再次打开该应用程序后,用户名不见了。
如何存储对象:
public Void perform(SQLiteDatabase db) {
final ConfigEntry entry = new ConfigEntry(property, value);
if(contains(property)) {
db.update(ConfigEntry.TABLE_NAME, databaseAdapter.convertToContentValues(entry), ConfigEntry.COLUMN_NAME + " = ?", new String[] { property });
} else {
db.insertOrThrow(ConfigEntry.TABLE_NAME, null, databaseAdapter.convertToContentValues(entry));
}
return null;
}
});
所以基本上db.insertOrThrow被调用。
这是我们如何初始化数据库:
public S doInTransaction(TransactionTask task) {
DatabaseHelper mDbHelper = DatabaseHelper.getInstance(mContext);
SQLiteDatabase mDb = mDbHelper.getWritableDatabase();
mDb.setLockingEnabled(true);
mDb.beginTransaction();
try {
S result = task.perform(mDb);
mDb.setTransactionSuccessful();
return result;
} finally {
mDb.endTransaction();
}
}
请考虑解释*精确*你的意思是“松散它的数据”。 – CommonsWare
即使我们不确定您的意思是“应用程序会丢失数据”是什么意思? – AAnkit
这是在传输中插入数据吗?如果是,你需要提交转换。 – wtsang02