【问题标题】:android Finalizing a Cursor that has not been deactivated or closedandroid 完成一个尚未停用或关闭的游标
【发布时间】:2011-08-15 05:01:37
【问题描述】:

大家好,我有这个问题....谁能告诉我是什么导致了这个问题....????

08-14 16:50:12.797: ERROR/Cursor(4453): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/com.paad.whereami/databases/adrite, table = books, query = SELECT _id, bookno, timeFrom, timeTo, lnk, booklink, dTime, Cbook, Cid, Cdate FROM booksdb
08-14 16:50:12.797: ERROR/Cursor(4453): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1229)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1184)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1264)
08-14 16:50:12.797: ERROR/Cursor(4453):     at com.meme.whatami.elhgsdatabase.getAllInfo(elhgsdatabase.java:157)
08-14 16:50:12.797: ERROR/Cursor(4453):     at com.meme.whatami.WhatAmI$7.run(WhatAmI.java:1331)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.os.Handler.handleCallback(Handler.java:587)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.os.Looper.loop(Looper.java:123)
08-14 16:50:12.797: ERROR/Cursor(4453):     at android.app.ActivityThread.main(ActivityThread.java:4627)
08-14 16:50:12.797: ERROR/Cursor(4453):     at java.lang.reflect.Method.invokeNative(Native Method)
08-14 16:50:12.797: ERROR/Cursor(4453):     at java.lang.reflect.Method.invoke(Method.java:521)
08-14 16:50:12.797: ERROR/Cursor(4453):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-14 16:50:12.797: ERROR/Cursor(4453):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-14 16:50:12.797: ERROR/Cursor(4453):     at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

    标签: android cursor finalizer


    【解决方案1】:

    在 com.meme.whatami.elhgsdatabase.getAllInfo(elhgsdatabase.java:157) 调用“查询”之后:

    cursor.close();
    

    【讨论】:

    • public Cursor getAllTitles() { return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_bookNO, KEY_TIMEFROM, KEY_TIMETO, KEY_LINK, KEY_bookLINK, KEY_bookTIME, KEY_C1, KEY_C2, KEY_C3 }, null, null ,空,空,空); }
    • 嗯,您正在返回一个您正在其他地方使用的游标。使用完之后(在 getAllTiles 调用之后)然后关闭它。
    猜你喜欢
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多