Соединение с БД Android и попробуйте поймать предмет - PullRequest
0 голосов
/ 27 октября 2011

Привет. Я пытаюсь очистить свой код от ошибок, указывающих, что мое соединение с БД было открыто, но не закрыто правильно.

Если у меня есть db.open (), то несколько операторов try catch для запроса db затем db.close () после перехвата try будет ли использовать то же соединение db в рамках catch catch, либо java дискретно выполнит попытку операторы catch, поэтому соединение с БД недоступно.

Короче, должен ли я иметь что-то вроде этого:

db.open();
try {
 // here
 db.getThings()
} catch () {
 // there
}
try {
 // here 2
 db.getMoreThings()
} catch () {
 // there 2
}
db.close();

Или это:

try {
 // here
 db.open();
 db.getThings()
 db.close();
} catch () {
 // there
}

try {
 // here 2
 db.open();
 db.getMoreThings()
 db.close();
} catch () {
 // there 2
}

Я бы подумал, что первое решение по открытию одного соединения с БД - лучшее. Но у меня возникают проблемы с закрытием соединений БД, и я думаю, что в моем дизайне есть фундаментальная проблема.

Я также пытался открыть соединение в onResume (), а затем закрыть в onPause (), но все еще возникают проблемы.

1 Ответ

0 голосов
/ 27 октября 2011

Рекомендуется закрыть соединение с БД, как только вы выбрали данные, поэтому в моем приложении я в основном использую следующий шаблон:

db.open();
try {
    // select data
} finally {
    db.close();
}

это сработало для меня.

...