我的备份模块可以从备份中恢复SQLite
数据库。首先,它删除当前数据库文件,然后将备份数据库字节复制到数据库目录。恢复数据库后,我要求用户重新启动应用程序,包括将其从内存中删除。这工作正常。
有没有办法以编程方式“刷新”对数据库文件的引用?这样,用户就无法关闭应用程序。
我的数据库存储在/data/data/com.mypackage.project/databases/mydatabase.db
中,备份在sdcard中。
我像这样恢复数据库文件:
public static boolean transferBytes(File from, File to) {
FileChannel inputChannel = getInputStream(from).getChannel();
FileChannel outputChannel = getOutputStream(to).getChannel();
return transfer(inputChannel, outputChannel);
}
private static boolean transfer(FileChannel inputChannel, FileChannel outputChannel) {
try {
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
inputChannel.close();
outputChannel.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
其中from
是备份文件,to
是具有上述数据库路径的文件实例。
答案 0 :(得分:1)
在恢复db?
之后,您是否尝试创建DBHelper的新实例?