我們有一個奇怪的錯誤。如果電池電量耗盡,我們的應用程序將丟失數據(存儲在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