Android的SQLITE非法状态异常 [英] Android SQLITE Illegal State Exception
本文介绍了Android的SQLITE非法状态异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用下面的code以添加项目到数据库:
I am using the following code to add items to the Database :
public static void insertQuestion(Context c,JSONArray jarr,String search) throws JSONException {
DatabaseWrapper databaseWrapper = new DatabaseWrapper(c);
SQLiteDatabase database = databaseWrapper.getWritableDatabase();
ContentValues values = postToContentValues2(jarr);
values.put(QuestionORM.COLUMN_SEARCH,search);
long questionId = database.insert(QuestionORM.TABLE_NAME, "null", values);
Log.e(TAG, "Inserted new Question with ID: " + questionId);
database.close();
}
不过,我得到一个错误说
But I get an error saying
试图重新打开一个已关闭的对象
"attempt to re-open an already-closed object"
在这条线:
SQLiteDatabase database = databaseWrapper.getWritableDatabase();
我如何解决此问题?
How do I resolve this ?
谢谢!
推荐答案
在开放式检查
if(database != null && database.isOpen()){
// if open then don't open
}
---- ----更新
---- UPDATE ----
//在你的类CALSS添加此方法
// add this method in your class calss
private SQLiteDatabase myDataBase;
...
public boolean isDatabaseOpened() {
if (myDataBase == null) {
return false;
}
return myDataBase.isOpen();
}
如果方法返回false,那么只调用getWritableDatabase()或getReadableDatabas()按您的要求。
if method returns false then only call getWritableDatabase() or getReadableDatabas() as per your requirement.
这篇关于Android的SQLITE非法状态异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文