2015-08-13 65 views
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與上面提到的數據庫路徑的文件實例。

回答

1

您是否嘗試在恢復數據庫後創建DBHelper的新實例?