У меня есть приложение, которое считывает значения из таблицы базы данных (база данных называется 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 (), потому что я хочу контролировать открытие и закрытие базы данных.