Android 检查光标对象是否已关闭
我是android新手。是否有任何语句可用于检查游标对象和数据库是否关闭。 我有两个活动A和B。当我在A中执行某些操作时,它将转到B。A的数据库对象和光标对象在活动A中关闭。当我在B中按下后退按钮时,活动被强制关闭。我知道此错误是由于关闭我的游标对象造成的。是否有方法重新打开游标和数据库对象,或者我们是否可以检查两者是否都已关闭。如果是,请帮助我 我的logcat视图如下所示:Android 检查光标对象是否已关闭,android,cursor,android-sqlite,Android,Cursor,Android Sqlite,我是android新手。是否有任何语句可用于检查游标对象和数据库是否关闭。 我有两个活动A和B。当我在A中执行某些操作时,它将转到B。A的数据库对象和光标对象在活动A中关闭。当我在B中按下后退按钮时,活动被强制关闭。我知道此错误是由于关闭我的游标对象造成的。是否有方法重新打开游标和数据库对象,或者我们是否可以检查两者是否都已关闭。如果是,请帮助我 我的logcat视图如下所示: 10-25 16:02:15.152: ERROR/AndroidRuntime(458): Caused by:ja
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)
尝试在活动A的
onResume()
或onStart()
中打开光标,而不是onCreate()
要关闭数据库实例,请在退出活动之前执行以下操作:
if(db.isOpen()){
db.close();
}
要检查光标是否可用,请执行以下操作:
if (cursor1.isClosed())
//Do something here