我收到“正在完成尚未停用的光标或 关闭”这段代码的错误。 该代码用于填充 ListView 。
因为这是一个非 fatal error ,所以没有崩溃,一切似乎都正常 很好..但我不喜欢这个错误。
如果我在这段代码的末尾关闭光标.. ListView 保持不变 空的。 如果我在 onStop 关闭光标,我会得到同样的错误。
我该如何解决这个问题?
private void updateList() {
DBAdapter db = new DBAdapter(this);
db.open();
//load all waiting alarm
mCursor=db.getTitles("state<2");
setListAdapter(new MyCursorAdapter(this, mCursor));
registerForContextMenu(getListView());
db.close();
}
error :
E/Cursor ( 2318): Finalizing a Cursor that has not been deactivated
or closed. database = /data/data/xxxxxxxxxxxxxxx.db, table = alerts,
query = SELECT _id, alert_id,
E/Cursor ( 2318):
android.database.sqlite.DatabaseObjectNotClosedException: Application
did not close the cursor or database
object that was opened here
E/Cursor ( 2318): at
android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
E/Cursor ( 2318): at
android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:
53)
E/Cursor ( 2318): at
android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:
1345)
E/Cursor ( 2318): at
android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:
1229)
....
....
最佳答案
如果您关闭 onStop()
或 onDestroy()
中的 Cursor
,您应该不会收到该消息。请再试一次。或者,在您从查询中获取 Cursor
后调用 startManagingCursor()
,Android 将自行关闭 Cursor
。
关于android - 完成未停用或关闭的游标非 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3068320/