我想使用BackupManager
为我的应用程序备份数据库。该文档讨论了BackupAgent
和BackupAgentHelper
,并指出如果您有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。