Android BackupManager 和我的应用程序数据库 : best approaches

标签 android database android-backup-service

我想使用 BackupManager 为我的应用程序备份数据库。该文档讨论了 BackupAgentBackupAgentHelper,它指出如果您有数据库,则要使用 BackupAgent

另一方面,BackupAgentHelper 有一个简洁的 FileBackupHelper,这让事情变得非常简单。

我的问题:

1) 是否可以使用 FileBackupHelper 备份/data/data//databases 中的 .sqlite 文件?

2) 如果没有,是否可以在 onBackup()onRestore() 中使用 SQLiteOpenHelper 的方法(onCreate/onUpgrade to backup/restore)?

最佳答案

这是可能的。当您扩展 BackupAgentHelper 并实现其 onCreate() 时,您可以在其中执行如下操作:

addHelper(STATS_BACKUP_KEY, new DbBackupHelper(this, "my_db_name"));

您的 DbBackupHelper 类可以如下所示:

public class DbBackupHelper extends FileBackupHelper {

    public DbBackupHelper(Context ctx, String dbName) {
        super(ctx, "../databases/" + dbName);
    }
}

有关完整示例,请查看 GitHub 上的 Andlytics 项目:AndlyticsProject .

关于Android BackupManager 和我的应用程序数据库 : best approaches,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014118/

相关文章:

android - 如果我点击 ImageView 1 中的某个位置,则在 ImageView2 上以与 ImageView 1 相同的坐标绘制一个圆圈,反之亦然

MySQL 错误 : not connected

python - 我如何在 Django 中编写此查询? (约会时间)

android - 重新安装应用程序时未调用 BackupAgent.onRestore 但调用 bmgr 还原命令

android - 在 Android 4.3 上创建的加密备份无法在 4.4 上恢复

java - Android应用程序备份和恢复?

android - 如何在android中使用面具

Android Facebook对话框立即消失

java - 安卓 : How to ask permission to wireless?

c# - 使用 for 循环获取 DataTable 到元组列表