2016-09-25 62 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

我想你是对的,我只是有点担心表现,但我认为这不会有很大的不同。 –