0

我正在处理大量用于验证 AsyncTask 对象中的本地数据存储的 XML 数据。首先,我尝试将事务用于这些操作,但是当事务正在进行时,用户的任何其他操作都会使应用程序冻结并等待事务完成,有时甚至使应用程序停止响应。

事务被分为几个步骤,有时每次迭代可以计算到数百个。由于我从使用事务到非常慢但解决了冻结的实时查询的问题 - 导致非常耗电的应用程序。

我的问题是;有没有办法阻止事务锁定数据库?还是我的问题是交易前准备不足造成的?

4

2 回答 2

0

事务往往会在执行业务时锁定您的表,因此您无法同时在同一个实例上执行事务和非事务查询。

但是,您需要做的是首先处理您的数据 (xml)(这可能很耗时),然后在您准备好数据后启动事务。

PS 我个人建议您在插入多条记录时使用事务(以一种有效的方式),因为它创建一个日志文件来处理所有插入并大大加快 SQLite 操作。

于 2012-05-08T07:24:01.153 回答
0

让你的交易更小,不要忘记(就像我一样)如果抛出异常仍然结束交易 - 使用try,catch,finally......

于 2018-11-07T14:58:27.660 回答