Android BackupManager和我的应用数据库:最佳方法



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

另一方面,BackupAgentHelper有一个整洁的FileBackupHelper,使事情变得非常容易。

我的问题:

1) 是否可以使用FileBackupHelper备份/data/data/<myapp>/数据库?

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。

最新更新