2011-01-02 1 views
0

У меня есть класс помощника DB, который помогает мне вставлять и удалять записи частей информации в Android 1.6.Android: Ошибка, Ljava/lang/IllegalStateException ;: Завершить курсор, t_forms, который не был деактивирован или закрыт

При удалении записи и вставить новый только после этого, я получаю следующую ошибку

Ljava/языки/IllegalStateException Доработка курсор ;: [email protected] на t_forms, что не имеет были деактивированы или закрыты

Я просмотрел веб-поиск ответа, и большинство сообщений на форуме говорят, что курсор не закрыт. Фактически выполняемые мной операции не возвращают данные набора записей, поэтому я немного зациклился на том, почему logcat выбрасывает эту ошибку ...

Так что это 2 functio ns, которые вызываются один за другим.

//---deletes a particular form--- 
public boolean deleteForm(int formID) 
{ 
    return db.delete(DATABASE_TABLE, KEY_FORM_ID + "=" + formID, null) > 0; 
} 

//---insert a form into the database--- 
public long insertForm(int form_id, String lform_name, String lform_description, String sdcardPath) 
{ 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(KEY_FORM_ID, form_id); 
    initialValues.put(KEY_FORM_NAME, lform_name); 
    initialValues.put(KEY_FORM_DESC, lform_description); 
    initialValues.put(KEY_SDCARDPATH, sdcardPath); 
    return db.insert(DATABASE_TABLE, null, initialValues); 
} 

В чем может быть проблема?

+0

Код, который вы указали, недостаточно, чтобы сказать, где именно возникает ошибка. –

ответ

1

Код, который вы указали, недостаточно. Но сначала закрыть курсор в OnDestroy и OnStop так:

if(mCursor!= null && !mCursor.isClosed()) 
    mCursor.close(); 

, а затем попробуйте позвонить startManagingCursor(cursor) после где вы используете ваш объект управления курсором, если вы используете его, чтобы сделать запрос, и т.д., называют его после операции вы делаете с помощью курсора.

Смежные вопросы