我尝试使用BackupAgentHelper备份和恢复我的领域数据库。
我的问题是,当我恢复数据库时,我的应用程序加载了一个空数据库。我不确切地知道问题的确切位置,要么恢复文件,要么我的应用程序正在创建default.realm并覆盖已恢复的文件。
以下是我的示例BackupAgent。
@Override
public void onCreate() {
FileBackupHelper hosts = new FileBackupHelper(this, Realm.getDefaultInstance().getConfiguration().getRealmFileName());
addHelper(Realm.getDefaultInstance().getConfiguration().getRealmFileName(), hosts);
}
@Override
public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
ParcelFileDescriptor newState) throws IOException {
// Hold the lock while the FileBackupHelper performs backup
synchronized (MainActivity.sDataLock) {
Log.w("Backup", "onBackup");
super.onBackup(oldState, data, newState);
}
}
@Override
public File getFilesDir() {
File path = getDatabasePath(Realm.getDefaultInstance().getConfiguration().getRealmFileName());
return path.getParentFile();
}
@Override
public void onRestore(BackupDataInput data, int appVersionCode,
ParcelFileDescriptor newState) throws IOException {
Log.w("Backup", "onRestore");
// Hold the lock while the FileBackupHelper restores the file
synchronized (MainActivity.sDataLock) {
Log.w("Backup", "Restoring data...");
super.onRestore(data, appVersionCode, newState);
}
}
我的Application类配置领域:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
RealmConfiguration realmConfiguration = new RealmConfiguration
.Builder(this)
.deleteRealmIfMigrationNeeded()
.schemaVersion(10)
.build();
Realm.setDefaultConfiguration(realmConfiguration);
Log.d("Files", "MyApplication");
logFiles();
}
我发现在backupAgent之前调用MyApplication类,是否可以创建dbfile而backupagent不会覆盖它?
由于