База данных SQLite вновь открывается в Android - PullRequest
1 голос
/ 29 февраля 2012

Я не вижу никаких методов в SQLiteDatabase классе и SQLiteDatabaseOpener Поэтому я получил эту ошибку:

AndroidRuntime(806): Caused by: java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable

Что было бы хорошим способом спроектировать его так, чтобы я мог использовать базу данных везде, скажем, в определенном классе?

Спасибо!

1 Ответ

2 голосов
/ 29 февраля 2012

Ответ прямо здесь Исключение: попытка получить ссылку на закрытый SQLiteClosable

Этот довел меня до безумия дольше всего. Решение, которое я нашел, довольно простое: не храните ссылки на объекты SQLiteDatabase. Вместо этого используйте SQLiteOpenHelper и вызывайте getWritableDatabase () каждый раз, когда вам это нужно. Из документов:

публичная синхронизированная SQLiteDatabase getWritableDatabase ()

Создание и / или открытие базы данных, которая будет использоваться для чтения и пишу. После успешного открытия база данных кэшируется, поэтому вы можете вызывайте этот метод каждый раз, когда вам нужно записать в базу данных.

Ответ был тут же все время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...