Android sqlite提前写入记录notworking

时间:2016-07-17 08:32:25

标签: android multithreading sqlite wal

我在Android中使用SQLiteOpenHelper并调用setWriteAheadLoggingEnabled(true);

基本上我每次都做一堆网络同步(每个都在他们自己的线程中,并且他们在onPostExecute中调用下一个),所以我想将所有这些同步放在一个Transaction中,所以我打电话给{ {1}}在完成所有工作后beginTransactionNonExclusive(),在最后一个块中我调用`endTransaction()'

但问题是,在我的一些同步中,我需要从db读取一些行并将它们发布到服务器,因此我必须使用setTransactionSuccessful()作为queryString调用database.rawQuery(queryString, null);。一旦我的代码到达这里,我就开始关注logcat:

select

这不是The connection pool for database '+data+data_package_db_file' has been unable to grant a connection to thread 3103 (AsyncTask #4) with flags 0x2 for 4.0010004 seconds. Connections: 0 active, 1 idle, 1 available. 的用途吗?

也许我应该解释一下,在主线程(启动事务)中执行select查询没有问题但是从另一个线程中选择会导致场景!

0 个答案:

没有答案