你能帮我理解为什么我得到'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)
答案 0 :(得分:2)
您正尝试多次打开数据库;你做不到的。
我建议您的数据库处理程序类应该是一个单例,以防止数据库多次打开的可能性。
因为你在Android上更好的解决方案是扩展SQLiteOpenHelper类。它将自动确保数据库只打开一次,并具有初始创建和数据库更新的有用功能。
答案 1 :(得分:0)
数据库被锁定异常 如果另一个数据库处理程序正在查找数据库,所以请确保您没有从另一个处理程序查找数据库。