我正在处理 android sqlite 数据库,我无法在其中将记录插入数据库。
在代码中,我在启动应用程序时只打开一次数据库,并且在那里设置了对我的 Application 类变量的引用,以便我可以从代码的任何部分访问数据库,这工作正常。
问题是:我可以访问数据库,但无法开始事务。它没有给我任何异常,但 sqLiteDatabaseWrite.isDbLockedByOtherThreads()
返回 TRUE
。此外,在 logcat 中有一条警告消息:
WARN/SQLiteDatabase(19006): database lock has not been available for 30 sec. Current Owner of the lock is 1. Continuing to wait in thread: 14
任何解决方案?。
最佳答案
谢谢你和我在一起。其实我解决了我的问题。我使用 sqLiteDatabase.beginTransaction()
开始了一个 SQLite 数据库操作,但我忘记结束这个事务。我通过结束交易解决了这个问题。为了结束交易,我使用了以下代码:
sqLiteDatabase.setTransactionSuccessful();
sqLiteDatabase.endTransaction();
谢谢。
关于Android数据库被其他线程锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8200509/