我的数据库由FileBackupHelper备份,指南说这个活动与我的应用程序中的db文件访问同步。我试图找出这是必要的。
我可以同步某些功能或所有访问权限。我考虑了三种选择:
1)仅同步数据库编辑(写入)
synchronized(MyLocks.DBLock){
db.insert(MY_TABLE, null, contentValues);
db.update(MY_TABLE, contentValues, KEY_ID + " = ?", new String[]{str})});
}
2)同步读取适配器中的数据库。
synchronized(MyLocks.DBLock){
db.insert(MY_TABLE, null, contentValues);
db.update(MY_TABLE, contentValues, KEY_ID + " = ?", new String[]{str})});
Cursor c = db.query(true, MY_TABLE, new String[] {KEY_EC}, KEY_ID + "=" + id, null, null, null, null, null);
if (c != null && c.getCount() > 0) {
c.moveToFirst();
} else{
if(c != null)
c.close();
return null;
}
Double d = Double.valueOf(c.getDouble(c.getColumnIndex(KEY_EC)));
c.close();
}
3)从活动打开数据库适配器的那一刻起同步所有内容。
// in an activity
DBAdapter dba = new DBAdapter(context);
synchronized(MyLocks.DBLock){
dba.open();
dba.doDatabaseOperation();
dba.close();
}
哪种方法是必要的?