gpt4 book ai didi

安卓数据库锁定

转载 作者:行者123 更新时间:2023-12-05 07:50:00 24 4
gpt4 key购买 nike

我收到以下错误。那么我该如何解锁我的数据库呢?

10-28 08:43:26.510: ERROR/AndroidRuntime(881): FATAL EXCEPTION: Thread-11
10-28 08:43:26.510: ERROR/AndroidRuntime(881): android.database.sqlite.SQLiteDatabaseLockedException: database is locked
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:983)
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:956)
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1021)
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:742)
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221)
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:149)
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at com.aa.me.vianet.dbAdapter.DbAdapter.open(DbAdapter.java:25)
10-28 08:43:26.510: ERROR/AndroidRuntime(881): at com.aa.me.vianet.services.NotificationManagerThread.run(NotificationManagerThread.java:49)

最佳答案

我想你忘了关闭数据库,或者当你试图写入数据库时​​另一个线程正在写入数据库。 SQLite 在写入数据库时​​锁定数据库,以避免在另一个实体试图同时写入同一数据库时损坏。 Android,只会在 log cat 中显示错误,您提供的查询将被遗忘...

所以,我建议:

  • 您只能从一个SQLOpenHelper
  • 访问数据库
  • 确保在使用完数据库助手后关闭所有实例
  • 如果你没有设置成功(即如果你想回滚它们),你确保你总是用 endTransaction() 结束交易,以防你使用交易
  • 您可以尝试使用 OrmLite , 我没有用过它,但我听说这里的其他人对它赞不绝口。

关于安卓数据库锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36643628/

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