11-29 09:53:02.368: ERROR/Cursor(1081): Finalizing a Cursor that has not been deactivated or closed. 
11-29 09:53:02.368: ERROR/Cursor(1081): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1229)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1184)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1264)
11-29 09:53:02.368: ERROR/Cursor(1081):     at com.Hello.DBdataProvider.query(DBdataProvider.java:42)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.content.ContentProvider$Transport.query(ContentProvider.java:163)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.content.ContentResolver.query(ContentResolver.java:245)
11-29 09:53:02.368: ERROR/Cursor(1081):     at com.Hello.rService.updateTable(registerService.java:281)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:43)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.os.Handler.handleCallback(Handler.java:587)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.os.Looper.loop(Looper.java:123)
11-29 09:53:02.368: ERROR/Cursor(1081):     at android.app.ActivityThread.main(ActivityThread.java:4628)
11-29 09:53:02.368: ERROR/Cursor(1081):     at java.lang.reflect.Method.invokeNative(Native Method)
11-29 09:53:02.368: ERROR/Cursor(1081):     at java.lang.reflect.Method.invoke(Method.java:521)
11-29 09:53:02.368: ERROR/Cursor(1081):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
11-29 09:53:02.368: ERROR/Cursor(1081):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:638)
11-29 09:53:02.368: ERROR/Cursor(1081):     at dalvik.system.NativeStart.main(Native Method)

解决方案 »

  1.   

    11-29 09:53:02.368: ERROR/Cursor(1081): Finalizing a Cursor that has not been deactivated or closed.  
    11-29 09:53:02.368: ERROR/Cursor(1081): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened hereCursor没有关闭,用完后加上close
      

  2.   

    句柄用完之后必须close,db也要关闭。
    关闭的顺序是先关闭cursor,最后再关闭db。
    无论哪个数据库都是这么处理的。
    善始善终嘛。