多线程多个sqlite命令android错误

时间:2016-07-27 14:03:48

标签: android database multithreading sqlite

我使用android SQLiteOpenHelper 来处理我的sqlite数据库。

我正在尝试使用简单的asynctask在后台执行大量的数据库命令,因此用户不会注意到它会在主线程上给出的延迟。 当有多个(大量)命令时,总是让数据库无法打开错误。

cpython.object.Py_LT

当我多次调用该命令时,不会发生这种情况。

我已经检查了有关此问题的其他主题,并且还进行了一些谷歌搜索,但我无法找到anwser。

我的代码:

android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14) os_unix.c:31278: (24) open(/data/user/0/com.locomain.app/databases/app.db-journal)

2 个答案:

答案 0 :(得分:0)

问题是发送到db的查询加载(来源:https://www.sqlite.org/rescode.html#cantopen)。 我通过重构我处理查询的方式来修复它。

答案 1 :(得分:-1)

制作使用db synchronized

的方法

尝试使用线程而不是AsyncTasks,无论如何都是更好的实践。

您确定使用交易吗?它确实减慢了插入速度。