Откройте базу данных один раз при запуске приложения (создайте подкласс Application
, если у вас его еще нет) и никогда не закрывайте базу данных.Совместно используйте базу данных между своими действиями, используя метод Singleton или метод доступа в вашем классе Application
.
Сам SQLite при необходимости управляет последовательным доступом между конкурирующими потоками, поэтому вам не нужно самостоятельно управлять блокировкой.Вам не нужно закрывать базу данных, так как транзакционный характер SQLite означает, что он в любом случае сбрасывает все в хранилище при первой же возможности.
Ваш код становится намного проще и безопаснее, если вы делаете это таким образом.