android - 完成未停用或关闭的游标非 fatal error

标签 android android-cursor

我收到“正在完成尚未停用的光标或 关闭”这段代码的错误。 该代码用于填充 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(SQLiteDirectCursorDr­iver.java: 
53) 
E/Cursor  ( 2318):      at 
android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.j­ava: 
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/

相关文章:

android - 将默认设计主题更改为自定义颜色

android - 在一个 Activity 中使用不同的 (AsyncTask) Loader

java - 使用 CAMERA 时应用程序崩溃 - Android

android - 将游标数据放入数组

android - 获取 SQLite 数据库并将其存储在对象数组中

android - SQLite Database for Android 应用强制关闭

android - 删除过滤器约束时如何重新填充我的列表

android - 如何编写sqlite查询来获取特定数据?

c# - 更改冲突的程序集引用

android - 从图库中选择图像后从 android URI 获取真实路径