getDatabase called recursively数据库递归使用错误

@Overridepublic void onCreate(SQLiteDatabase db) {// Create tablesdb.execSQL(CREATE_CATEGORIES_TABLE);db.execSQL(CREATE_CHRGDATA_TABLE);db.execSQL(CREATE_SETTINGS_TABLE);setDefaultLabel();}/** * */public void setDefaultLabel() {// create default labelSQLiteDatabase db = this.getWritableDatabase();ContentValues values = new ContentValues();values.put(KEY_NAME, "Default");db.insert(TABLE_LABELS, null, values);}

代码中onCreate方法中的setDefaultLabel()方法里再次调用了SQLiteDataabase造成,数据库递归调用,此时的解决办法为:修改setDefaultLabel()方法

@Overridepublic void onCreate(SQLiteDatabase db) {// Create tablesdb.execSQL(CREATE_CATEGORIES_TABLE);db.execSQL(CREATE_CHRGDATA_TABLE);db.execSQL(CREATE_SETTINGS_TABLE);setDefaultLabel(db);}/** * */public void setDefaultLabel(SQLiteDatabase db) {// create default labelContentValues values = new ContentValues();values.put(KEY_NAME, "Default");db.insert(TABLE_LABELS, null, values);}此时,SQLiteDatabase引用之前参数中的,就避免了重复。

其他情况类似,请根据此方法为蓝本,,进行改造即可。。。。

生活若剥去了理想、梦想、幻想,那生命便只是一堆空架子

getDatabase called recursively数据库递归使用错误

相关文章:

你感兴趣的文章:

标签云: