1

我的应用程序跟踪学校成绩、计算平均成绩等,并将所有这些存储在 SQLite 数据库中。如果用户必须重新安装或获得新手机,我希望能够恢复他们的数据。

看起来大多数开发人员通过备份到 SD 卡或通过 Google 使用Android 备份服务来执行此操作。我不确定哪种方法更好。我想恢复简单但可靠。我欢迎对此发表任何评论。

我试图理解的一件事是为什么谷歌说要扩展BackupAgent而不是BackupAgentHelper使用数据库。

如果您有一个 SQLite 数据库要在用户重新安装您的应用程序时恢复,您需要构建一个自定义 BackupAgent,它在备份操作期间读取适当的数据,然后创建您的表并在恢复操作期间插入数据。

为什么我不能将数据库备份为文件然后恢复文件?SQLiteOpenHelper如果数据库版本不同,我的班级已经处理升级。我想我可以在降级时中止。

4

2 回答 2

0

建议您避免一直备份整个 db 文件,主要是因为这会产生大量冗余数据流量,特别是如果您只更改了大型数据库中的一条记录。能够将每条记录的更新写入备份系统要高效得多(当然实现起来并不那么简单)。

于 2014-11-20T02:26:48.803 回答
0

为什么我不能将数据库备份为文件然后恢复文件?如果数据库版本不同,我的 SQLiteOpenHelper 类已经处理升级。我想我可以在降级时中止。

原因:相同的数据库文件可能无法在不同的设备型号上运行(即使在大多数情况下,它应该可以工作,但有些情况会失败)。它取决于在 sqlite 引擎级别设置的页面大小等参数。理想的方法是备份数据而不是复制整个文件

于 2014-11-09T15:44:56.237 回答