代码之家  ›  专栏  ›  技术社区  ›  Thorsten Dittmar

Android数据库备份

  •  4
  • Thorsten Dittmar  · 技术社区  · 16 年前

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

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

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

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

    1. 打开一个特殊的“恢复”活动 没有开放的数据库 连接
    2. 呼叫 finish() 对于 将其移除并关闭的主要活动 数据库连接
    3. 打开主活动的新“实例”
    4. 完成() 用于“恢复”活动

    1 回复  |  直到 16 年前
        1
  •  5
  •   Anthony Forloney    16 年前

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

    是的,你可以。因为你可以移动文件 将数据文件夹移动到SD卡上的文件夹中,可以移动该文件 返回

    您现在提出的是一种很好的方法,请记住,在备份/恢复过程中,您不需要任何打开的数据库对象。