【问题标题】:Android database backupsAndroid 数据库备份
【发布时间】:2010-02-09 21:37:30
【问题描述】:

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

但是,我不确定如何准备我的数据库/活动以进行备份/恢复。

开始时,我的主要活动从数据库中的一个表中读取条目并将它们显示在ListView 中。如 API 的“Notes”示例所示,我有一个游标,它会自动通知有关该表的更改(ListView 在我添加/删除/更新表中的记录时自动更新)。

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

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

  1. 开启特殊的“恢复”活动 没有打开的数据库 连接
  2. 请致电finish() 删除它并关闭的主要活动 数据库连接
  3. 复制回数据库文件
  4. 打开主要活动的新“实例”
  5. 致电finish() 进行“恢复”活动

这就是要走的路吗?感谢您的建议!

【问题讨论】:

    标签: database android backup


    【解决方案1】:

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

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

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

    【讨论】:

    • 我的意思是当视图有一个打开的连接时我不能复制回文件。当我完成从数据库中检索数据的视图时,所有连接都应该关闭,对吧?
    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多