Я получаю это исключение, DatabaseObjectNotClosedException:
close() was never explicitly called on database '/data/data/com.project.test/databases/database'
E/SQLiteDatabase(13921): android.database.sqlite.DatabaseObjectNotClosedException:
Application did not close the cursor or database object that was opened here
Я попытался закрыть помощник и курсоры базы данных, но я получу исключение во время выполнения. Это происходит, когда я покидаю занятие и возвращаюсь к нему после нажатия кнопки «Назад».
Как правильно закрыть курсоры и помощники?
Я пробовал два метода:
сначала закрывая курсоры после каждого отдельного использования и закрывая паузу помощника базы данных.
во-вторых, закрывая курсоры на паузе вместе с помощником базы данных, но оба не работали.
Может ли кто-нибудь помочь мне с этим?
EDIT:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activity = this.getActivity();
context = this.getActivity().getApplicationContext();
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mDbHelper = new DatabaseHelper(context);
mDbHelper.open();
populateList();
}
public void populateList() {
directoryCursor = mDbHelper.fetchAllRootDirectories();
activity.startManagingCursor(directoryCursor);
adapter = new DirectoryListAdapter(this.getActivity(), directoryCursor);
this.setListAdapter(adapter);
}
......
private UpdateDatabaseListener updateDatabaseListener = new UpdateDatabaseListener() {
public void onUpdate(int from, int to) {
.....
findExistingRecordCursor = mDbHelper.findExistingRecords(from, to);
activity.startManagingCursor(findExistingRecordCursor);
if(findExistingRecordCursor.getCount() == 0) {
....
}
}
}
У меня открыт помощник по базе данных в функции onCreate ().
курсоры, используемые при заполнении списка,
курсоры, используемые для поиска существующих записей,
курсоры для получения информации.
UPDATE:
Я попытался закрыть onPause и onDestroy, он все еще вылетает с исключением времени выполнения.