检查游标对象是否关闭

时间:2012-10-25 10:53:25

标签: android cursor android-sqlite

我是android的新手。有没有可用于检查游标对象和数据库是否关闭的语句。 我有两个活动A& B.当我在A中执行某些操作时,它将转到B.Database对象,A的光标对象在活动A中关闭。当我在B中时按下后退按钮,活动被强制关闭。我有理解这个错误是由于关闭我的光标对象。有没有办法重新打开光标&数据库对象或者我们可以检查两者是否都已关闭。如果是,请帮助我。

我的logcat视图如下:

10-25 16:02:15.152: ERROR/AndroidRuntime(458): Caused by:java.lang.IllegalStateException: attempt to re-open an already-closed object: android.database.sqlite.SQLiteQuery (mSql = SELECT * FROM tbl_sec) 
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:34)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:64)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:283)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.database.sqlite.SQLiteCursor.onMove(SQLiteCursor.java:255)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:188)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at com.nagainfo.firstAp.showTime.onResume(showTime.java:84)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.app.Activity.performResume(Activity.java:3823)
10-25 16:02:15.152: ERROR/AndroidRuntime(458):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)

2 个答案:

答案 0 :(得分:1)

尝试在活动A的CursoronResume()而不是onStart()中打开onCreate()

答案 1 :(得分:0)

要关闭数据库实例,请在退出活动之前执行此操作:

if(db.isOpen()){
    db.close();
}

要检查Cursor是否可用,请执行以下操作:

if (cursor1.isClosed())
    //Do something here
相关问题