Android数据库备份

Tho*_*mar 4 database backup android

我正在寻找在Android手机上备份我的应用数据库的方法.我知道SQLite数据库只是文件,所以我希望能够将文件复制到SD卡(如果有的话).

但是,我不确定如何为备份/恢复准备数据库/活动.

启动时,我的主要活动从数据库中的一个表中读取条目并将其显示在a中ListView.如API的"Notes"示例所示,我有一个游标自动通知该表的更改(ListView当我在表中添加/删除/更新记录时会自动更新).

所以:当我将数据库文件复制到SD卡时,我不应该有问题.但是如果用户想要恢复数据库文件呢?我不能只将文件复制回数据文件夹,我可以(编辑:...当视图显示来自数据库的数据,因此可能保持打开连接)?

实施备份/恢复时,什么是"最佳实践"?我考虑过的一种方法是:

  1. 打开一个特殊的"还原"活动,该活动不包含打开的数据库连接
  2. 调用finish()主活动以删除它并关闭数据库连接
  3. 复制数据库文件
  4. 打开主要活动的新"实例"
  5. 要求finish()"恢复"活动

这会是要走的路吗?谢谢你的建议!

Ant*_*ney 5

但是如果用户想要恢复数据库文件呢?我不能只将文件复制回数据文件夹,可以吗?

是的你可以.由于您可以将文件数据文件夹移动到SD卡上的文件夹,因此可以将文件从SD卡移数据文件夹.

您现在提出的建议是一种很好的方法,请记住,在备份/恢复期间不需要任何打开的数据库对象.