数据库被锁定异常

时间:2011-09-08 17:21:11

标签: android

你能帮我理解为什么我得到'SQLiteException:数据库被锁定'异常吗?在我的内容提供程序中,我调用了我的Provider构造函数

mDb = SQLiteDatabase.openDatabase(path, null, 0);

09-07 19:44:43.912  6830  6830 E AndroidRuntime: FATAL EXCEPTION: main
09-07 19:44:43.912  6830  6830 E AndroidRuntime: android.database.sqlite.SQLiteException: database is locked
09-07 19:44:43.912  6830  6830 E AndroidRuntime:    at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
09-07 19:44:43.912  6830  6830 E AndroidRuntime:    at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1990)
09-07 19:44:43.912  6830  6830 E AndroidRuntime:    at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:905)
09-07 19:44:43.912  6830  6830 E AndroidRuntime:    at com.mycompany.myapplication.provider.MyContentProvider.query(MyContentProvider.java:356)

2 个答案:

答案 0 :(得分:2)

您正尝试多次打开数据库;你做不到的。

我建议您的数据库处理程序类应该是一个单例,以防止数据库多次打开的可能性。

因为你在Android上更好的解决方案是扩展SQLiteOpenHelper类。它将自动确保数据库只打开一次,并具有初始创建和数据库更新的有用功能。

答案 1 :(得分:0)

数据库被锁定异常 如果另一个数据库处理程序正在查找数据库,所以请确保您没有从另一个处理程序查找数据库。