安卓数据库被其他线程锁定

4
我正在处理Android的sqLite数据库,在这个过程中无法将记录插入到数据库中。
在代码中,我只是在应用程序启动时打开数据库,并设置引用到我的Application类变量中,以便我可以从代码的任何部分访问数据库,这很好地运行了。
问题是:我能够访问数据库,但无法开始事务。它没有给我任何异常,但sqLiteDatabaseWrite.isDbLockedByOtherThreads()返回TRUE。同时,logcat中有一条警告信息:

WARN/SQLiteDatabase(19006): 数据库锁已经不可用了 30 秒。当前锁的所有者是1。 在线程14中继续等待

有什么解决方案吗?
1个回答

7

感谢您的陪伴。实际上,我解决了我的问题。我使用sqLiteDatabase.beginTransaction()开始了一个SQLite数据库操作,但我忘记结束这个事务。我通过使用以下代码来结束事务来解决了这个问题:

sqLiteDatabase.setTransactionSuccessful();
sqLiteDatabase.endTransaction();

感谢您。

我在安卓上也遇到了同样的问题,谢谢你的信息。 - Munipratap

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接