【发布时间】:2014-12-24 12:10:51
【问题描述】:
我需要从数据库中读取一些数据,同时我正在使用事务在另一个线程中加载一些数据。
我所有读取其他表的线程都停止,直到其他线程中的事务完成。
我需要能够从数据库中读取信息而不用担心其他线程。
我已经阅读了很多关于 sqlite、android 的信息......但没有任何效果,我读取参数的查询总是被阻止。
我已按照@KevinGalligan 在此线程 (What are the best practices for SQLite on Android?) 中所说的解决锁和其他问题的建议进行操作。
1) 我只使用了一个 SQLiteOpenHelper(单例)
2) 我从来没有关闭过数据库
我试过了:
开始交易:
database.execSQL("begin immediate transaction");
或
database.beginTransactionNonExclusive();
改为
database.beginTransaction();
不工作,查询被阻止。
我读过 WAL(database.enableWriteAheadLogging()),但我需要支持 api 9。
在事务更新某些表的同时读取任何其他解决方案?我不在乎我的信息是否被弃用,更重要的是不要阻止我的线程。
【问题讨论】:
标签: android multithreading sqlite android-sqlite