Ошибка при доступе к sqlite с использованием многопоточности - PullRequest
0 голосов
/ 12 ноября 2011

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

java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable

Проблема в том, что, хотя я выполняю загрузку базы данных в части потока (на время этого процесса), пользователь может нажать любую кнопку в основной операции, которая изменила бы другую таблицу в той же базе данных. Точка, в которой может возникнуть проблема

Есть ли способ избежать этой ошибки?

большое спасибо

1 Ответ

1 голос
/ 12 ноября 2011

Пожалуйста, проверьте мой блог.В нем объясняется, как поддерживать и совместно использовать соединение с базой данных sqlite и избежать проблем.

http://www.touchlab.co/blog/single-sqlite-connection/

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

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