-5
我有一個類似於聯繫人應用程序的應用程序,並使用SQLite存儲數據。我希望每當數據庫版本發生變化時,都會在應用程序內部進行當前數據庫的備份,並且客戶可以選擇回退到以前的版本。在我的應用程序內創建數據庫備份
在onUpgrade()方法中,如果我使用不同的名稱創建一個新表,那麼我無法從舊版本複製數據。
請提出一些很好的實現方法。我在互聯網上搜索,但無法找到。
我有一個類似於聯繫人應用程序的應用程序,並使用SQLite存儲數據。我希望每當數據庫版本發生變化時,都會在應用程序內部進行當前數據庫的備份,並且客戶可以選擇回退到以前的版本。在我的應用程序內創建數據庫備份
在onUpgrade()方法中,如果我使用不同的名稱創建一個新表,那麼我無法從舊版本複製數據。
請提出一些很好的實現方法。我在互聯網上搜索,但無法找到。
總之,您可以將文件複製到所需的位置,您也可能需要能夠恢復數據庫,這基本上是相反的。
這是一個應用程序的核心代碼的一個例子我有,使一個備份: -
String dbfilename = this.getDatabasePath(
DBConstants.DATABASE_NAME).getPath();
dbfile = new File(dbfilename);
backupfilename = directory.getText().toString() +
"/" +
backupfullfilename.getText().toString();
try {
FileInputStream fis = new FileInputStream(dbfile);
OutputStream backup = new FileOutputStream(backupfilename);
//byte[] buffer = new byte[32768];
int length;
while((length = fis.read(buffer)) > 0) {
backup.write(buffer, 0, length);
}
backup.flush();
backup.close();
fis.close();
}
catch (IOException e) {
//Error handling here.........
}
backupfilename是其中所述備份將被存儲的路徑。