1

私のアプリケーションには、アクティビティに戻ると、データベースが閉じられているというエラーが表示されるという問題があります。

ERROR/AndroidRuntime(3566): Caused by: java.lang.IllegalStateException: database /data/data/com.kempville.app/databases/MyDB already closed

カーソルのインスタンス化、オープン、インスタンス化、クエリの実行、カーソルのクローズ、およびデータベースのクローズをすべて、onResume() 中に呼び出されるメソッド内で行います。このアクティビティが前面に戻ったときに onResume が呼び出されるたびに、何が開いていると想定されるのかわかりません。

private void getMydata() {
    MyDb db;
    db = new MyDB(this);
db.open();
Cursor c = db.getInfo(code);
startManagingCursor(c);
if (c.moveToFirst()) {
        name = c.getString(c.getColumnIndex("name"));
}
c = fdb.getType(myArray.getString("type"));
startManagingCursor(c);
if (c.moveToFirst()) {
    type = c.getString(c.getColumnIndex("type"));
}
c.close();
db.close();
4

1 に答える 1

1

自分で閉じましたが、startManagingCursor が閉じようとするようです。startManagingCursor を削除するか (非推奨になりつつあります)、stopManagingCursor を呼び出してください。

于 2011-05-26T17:55:13.653 に答える