【发布时间】:2015-02-13 06:58:16
【问题描述】:
这是我的问题。我的应用程序启动了几个线程,每个线程都针对要更新的特定对象。对象的更新发生在对单个数据库的查询中。有一个数据库和一个 OpenHelper。我的应用程序的行为表明对数据库的调用不是同时进行的,正如我所愿。如何同时从不同线程访问同一个数据库?如果每个对象的数据在不同的表中,将数据库拆分为多个数据库,每个对象一个数据库更有效?
public class SomethingToBeUpdated implements Runnable {
private SQLiteDatabase db;
@Override
public void run() {
db.rawQuery( ... bla bla
}
}
public class MainActivity extends Activity {
private SomethingToBeUpdated[] list = bla bla...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
for( SomethingToBeUpdated x : list ) {
new Thread(x).start();
}
}
}
【问题讨论】:
-
小心 Sqlite 上的这种多线程。在您的情况下,最好将
JOINS与 rawQuery 一起使用
标签: android multithreading android-sqlite