進入此活動後,我收到此錯誤,開始一個新的活動,回來。當我第一次加載活動時不會發生。功能上一切正常......但我仍然得到這個錯誤。不關閉遊標或數據庫對象?
ERROR /光標(1059):結束寫入 光標還沒有被去激活 或關閉。數據庫= /data/data/com.roger.testapp/databases/data, 表= NULL,查詢= SELECT MAX(_id) FROM記錄
03-02 16:47:21.835: ERROR /光標(1059): android.database.sqlite.DatabaseObjectNotClosedException: 應用程序沒有關閉在這裏
打開 在的onCreate光標 或數據庫對象:
mDbHelper = new CommonDbAdapter(this);
mDbHelper.open();
fillData();
fillData()在我的dbhelper中調用fetchNote,遊標用於幾件事情,如果rowId == 0,這意味着我沒有選擇一個項目來進入這個活動,我想獲得最後一行那張桌子。如果rowId =別的東西,那麼我抓住那一行。我認爲問題出在這裏,我只是不確定。
public Cursor fetchNote(long rowId, String table, String columns) throws SQLException {
if (rowId == 0) {
String query = "SELECT MAX(_id) FROM record";
Cursor cursor = mDb.rawQuery(query, null);
rowId = 0;
if (cursor.moveToFirst())
{
rowId = cursor.getInt(0);
}
}
Cursor mCursor =
mDb.query(true, table, new String[] {KEY_ROWID,
columns}, KEY_ROWID + "=" + rowId, null,
null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
在的onDestroy:
super.onDestroy();
if (mDbHelper != null) {
mDbHelper.close();
}
另外,我startManagingCursor
'super.onDestroy()'實際上是否被調用? – 2011-03-02 22:02:59
我在日誌中看不到任何有關銷燬的信息。這只是我嘗試過的......似乎錯誤發生在那裏。 – Roger 2011-03-02 22:07:52