我试图更新下面的代码我的数据库表:getWritableDatabase递归调用
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String query = "ALTER TABLE names ADD COLUMN hidden integer default 0";
dbHelper.getWritableDatabase().rawQuery(query, null);
}
然而,当我启动应用程序,并尝试升级我得到下面的异常数据库:
...Caused by: java.lang.IllegalStateException: getWritableDatabase called recursively
有谁知道我可以解决这个问题,究竟是什么导致了它?
感谢
这不可能是这部分代码被调用的唯一地方吗? – JoxTraex 2012-02-05 20:54:52
是的,这是代码被调用的唯一地方。我也在函数中添加了一条日志语句,它只被调用一次。 – Nick 2012-02-05 21:00:20
然后做一个检查,如果旧版本<新版本。这将使它独占,虽然我不知道为什么它被多次调用。 – JoxTraex 2012-02-05 21:01:24