База данных Android уже закрыта на резюме - PullRequest
1 голос
/ 26 мая 2011

В моем приложении возникает проблема, из-за которой, если я возвращаюсь к действию, я получаю сообщение об ошибке, что база данных была закрыта:

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();

1 Ответ

1 голос
/ 26 мая 2011

Кажется, что startManagingCursor попытается закрыть его, хотя вы закрыли его самостоятельно. Либо удалите startManagingCursor (он становится устаревшим), либо лучше вызовите stopManagingCursor

...