gpt4 book ai didi

android - 如何避免 SQLiteException 锁定错误

转载 作者:IT老高 更新时间:2023-10-28 23:34:55 26 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序。它有多个线程读取和写入 Android SQLite 数据库。我收到以下错误:

SQLiteException: error code 5: database is locked

我了解 SQLite 在插入/更新时会锁定整个数据库,但这些错误似乎只在我运行选择查询时插入/更新时发生。选择查询返回一个游标,当我对其进行迭代时,该游标处于打开状态(有时几秒钟)。如果选择查询没有运行,我永远不会得到锁。我很惊讶选择可以锁定数据库。这是可能的,还是发生了其他事情?

避免此类锁定的最佳方法是什么?

最佳答案

您可能在各个线程中打开和关闭多个数据库连接。这是一个坏主意。只需打开一个数据库连接,并在任何地方重用它;然后 SQLite 将确保并发访问被正确序列化。

与 jcwenger 的回答一样,使用 ContentProvider 是实现此目的的另一种方式,但需要对代码进行更多侵入性更改。

关于android - 如何避免 SQLiteException 锁定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2397959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com