2016-09-25 41 views
0

爲了在設備之間同步數據,我在設備上檢索備份數據庫,然後請求此備份數據庫更新我的應用程序當前使用的數據庫。附加它後,是否需要分離SQLite數據庫?

我用這個代碼添加備份數據庫:

try { 
    db.execSQL("attach database ? as " + DATABASE_BACKUP_NAME, new String[]{dbFile.getPath()}); 
} catch(SQLiteException e) { 
    Log.i(TAG, "GoogleDrive: Database already in use, continue..."); 
} 

我使用try catch來去當備份數據庫已經連接上。

這是一種好的方法,還是每次都要重新分離並附加數據庫更好?

爲什麼分離數據庫會有用?

注意:這是從SQLite的文檔的唯一信息:

這種說法分離使用attach聲明以前附加額外的數據庫連接。當不處於共享緩存模式時,可能會使用不同的名稱連接多個相同的數據庫文件,並且將一個連接分離爲文件會使其他文件完好無損。

回答

1

我只會保留附加的備份數據庫,只要我需要它,然後分離它。想想這樣:如果你不再需要它,你會保留一個文件?將附加的數據庫視爲資源。當你需要時分配資源,當你不需要的時候釋放資源。

+0

我想你是對的,我只是有點擔心表現,但我認爲這不會有很大的不同。 –