为了在设备之间同步数据,我在设备上检索备份数据库,然后请求此备份数据库更新我的应用程序当前使用的数据库。
我使用此代码附加备份数据库:
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语句分离先前附加的其他数据库连接。当不处于共享缓存模式时,可以使用不同的名称多次连接相同的数据库文件,并且将一个连接分离到文件将使其他连接保持不变。
答案 0 :(得分:1)
我只会在需要时保留备份数据库,然后将其分离。可以这样想:如果你不再需要它,你会保持文件打开吗?将附加的数据库视为资源。在您需要时分配资源,在您不需要时解除分配。