2
我在我的備份模塊從備份恢復SQLite
數據庫。首先,它刪除當前數據庫文件,然後將備份數據庫字節複製到數據庫目錄。一旦數據庫恢復,我要求用戶重新啓動應用程序,包括從內存中刪除它。這工作正常。恢復後刷新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
與上面提到的數據庫路徑的文件實例。