【发布时间】:2010-02-09 21:37:30
【问题描述】:
我正在寻找在 Android 手机上备份我的应用程序数据库的方法。我知道 SQLite 数据库只是文件,所以我希望能够将文件复制到 SD 卡(如果有的话)。
但是,我不确定如何准备我的数据库/活动以进行备份/恢复。
开始时,我的主要活动从数据库中的一个表中读取条目并将它们显示在ListView 中。如 API 的“Notes”示例所示,我有一个游标,它会自动通知有关该表的更改(ListView 在我添加/删除/更新表中的记录时自动更新)。
所以:当我将数据库文件复制到 SD 卡时,我应该没有问题。但是如果用户想要恢复一个数据库文件呢?我不能只是将文件复制回数据文件夹,我可以吗(编辑:...而视图显示来自数据库的数据,因此可能保持打开的连接)?
在实施备份/恢复时,什么是“最佳做法”?我考虑过的一种方法是:
- 开启特殊的“恢复”活动 没有打开的数据库 连接
- 请致电
finish()删除它并关闭的主要活动 数据库连接 - 复制回数据库文件
- 打开主要活动的新“实例”
- 致电
finish()进行“恢复”活动
这就是要走的路吗?感谢您的建议!
【问题讨论】: