我使用以下代码将项目添加到数据库:
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();
}
但我收到错误
“尝试重新打开已经关闭的对象”
在这一行:
SQLiteDatabase database = databaseWrapper.getWritableDatabase();
如何解决此问题?
谢谢!
答案 0 :(得分:0)
打开前检查
if(database != null && database.isOpen()){
// if open then don't open
}
----更新----
//在类calss中添加此方法
private SQLiteDatabase myDataBase;
...
public boolean isDatabaseOpened() {
if (myDataBase == null) {
return false;
}
return myDataBase.isOpen();
}
如果method返回false,则只根据您的要求调用getWritableDatabase()或getReadableDatabas()。