0
也有类似的问题,但不清楚答案围绕从多个线程使用sqlite数据库。 考虑以下情形:从多线程sqlite访问阅读
class MainActivity extends Activity {
DbHelper db; //extends sqliteopenhelper
...
void M1() {
db.getReadableDatabase();
Cursor c = db.query("...."
...
db.close();
}
void M1() {
db.getReadableDatabase();
Cursor c = db.query("...."
...
db.close();
}
没关系,这不是多线程,但问题是,
它成为使用sqliteopenhelper实例的同一个实例的一个问题(即DB)像上面那样,多次以不同的方式打开和关闭?
而我的情况是这样的:myAsync extends AsyncTask doInBackground(.. {
do something using M1(); //this is a background thread }} onResume()...{ myAsync.execute(); M2(); //this is the main thread ... },如果你看到的是,在异步的情况下,它可能是两个方法可以同时访问同一个数据库(读only-关于写如何? )。但他们正在使用SqliteOpenHelper的同一个实例。它会导致碰撞,如果是的话如何避免这种情况?
我想了解更多关于sqlite数据库和并发性的信息
任何想法都将非常感激。
谢谢你提到关于“同步”,有人说,如果我只读,没有限制,没有碰撞。真的吗?我也想了解同步,但在那里没有用。你能推荐我任何链接,博客,来源吗?我已经搜索了Android开发。 –
当然,如果我得到任何细节信息 –