2017-10-08 92 views
-1

在我写的使用sqlite进行数据持久性的应用程序中。
我决定创建本地数据库文件和这个文件我读/写我的数据。如何保持本地数据库文件不会被破坏?

因为有一个选项,用户会做一些事情(如关闭他的设备),这将损坏这个数据库文件 - 我想创建备份数据库文件,将在写入数据库的过程结束时重写文件。

(我将永远保存2个数据库文件..一个是不是最后一次更新,不是没有损坏,一个是“脏”数据库文件,保存最新数据 - 我的应用程序将写入此文件并进行交换之间的这两个文件之间)

  1. 是否有一些其他方式来避免损坏的db文件的情况下?
  2. 有没有一些代码示例或一些如何在android代码上做这个备份的lib?为避免破坏当地的SQLite数据库的风险

回答

2

一种选择将是您的关键数据镜像到服务器,最终到更稳定更持久的数据库。因此,作为示例,您可以定期将本地用户数据与服务器同步。如果您检测到损坏的数据,如果事情非常糟糕以致根本无法读取,则不会使用该数据进行更新,甚至可能使用服务器端数据库数据进行某种恢复。

0

我推荐你去看看Room - 一个新的库,它是SQLite的一个抽象层,用来处理程序员在手动管理SQLite数据库时遇到的问题。就我个人而言,我已经迁移到房间,它解决了我以前遇到的一些问题(除了你的问题,但仍然)。