我試圖更新下面的代碼我的數據庫表: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