У меня есть приложение, которое считывает значения из таблицы базы данных (база данных называется SoftCopyDatabase) и заполняет список значениями, считанными из базы данных. При нажатии на элемент из списка начинается новое действие.
Проблема в том, что когда я нажимаю клавишу возврата, я получаю сообщение об ошибке
IllegalStateException: database already closed
Мой код выглядит следующим образом:
открытый класс OpenClick расширяет ListActivity {
public static String subjectName;
private SoftCopyDatabase lectures;
private static int[] subTO = { R.id.subject };
private static String[] subFROM = { SUBJECT };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
lectures = new SoftCopyDatabase(this);
}
public void onStart() {
super.onStart();
try {
Cursor cursor = getSubjects();
showSubjects(cursor);
} catch (Exception e) {
e.printStackTrace();
}
}
public void onRestart() {
super.onRestart();
lectures = new SoftCopyDatabase(this);
}
public void onStop() {
super.onStop();
lectures.close();
}
public void onDestroy() {
super.onDestroy();
lectures.close();
}
//remaining code....
}
Один момент, который я хотел бы упомянуть, это то, что если я удалю метод onStop(), приложение будет работать правильно. Но мне нужно включить onstop(), потому что я хочу контролировать открытие и закрытие базы данных.