2017-10-08 95 views
-1

在我寫的使用sqlite進行數據持久性的應用程序中。
我決定創建本地數據庫文件和這個文件我讀/寫我的數據。如何保持本地數據庫文件不會被破壞?

因爲有一個選項,用戶會做一些事情(如關閉他的設備),這將損壞這個數據庫文件 - 我想創建備份數據庫文件,將在寫入數據庫的過程結束時重寫文件。

(我將永遠保存2個數據庫文件..一個是不是最後一次更新,不是沒有損壞,一個是「髒」數據庫文件,保存最新數據 - 我的應用程序將寫入此文件並進行交換之間的這兩個文件之間)

  1. 是否有一些其他方式來避免損壞的db文件的情況下?
  2. 有沒有一些代碼示例或一些如何在android代碼上做這個備份的lib?爲避免破壞當地的SQLite數據庫的風險

回答

2

一種選擇將是您的關鍵數據鏡像到服務器,最終到更穩定更持久的數據庫。因此,作爲示例,您可以定期將本地用戶數據與服務器同步。如果您檢測到損壞的數據,如果事情非常糟糕以致根本無法讀取,則不會使用該數據進行更新,甚至可能使用服務器端數據庫數據進行某種恢復。

0

我推薦你去看看Room - 一個新的庫,它是SQLite的一個抽象層,用來處理程序員在手動管理SQLite數據庫時遇到的問題。就我個人而言,我已經遷移到房間,它解決了我以前遇到的一些問題(除了你的問題,但仍然)。