База данных Android по нескольким действиям - PullRequest
2 голосов
/ 03 апреля 2012

В настоящее время я пытаюсь создать приложение для Android, которое имеет представление с вкладками и 3 действиями на вкладке.Каждое действие обращается к одной базе данных, однако android жалуется, что вторая и третья вкладки не имеют блокировки на базе данных (потому что вкладка 1 получила бы ее, потому что она была запущена первой).Кто-нибудь знает, что я должен сделать, чтобы эта база данных была доступна на всех трех вкладках?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

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

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

Ваш код становится намного проще и безопаснее, если вы делаете это таким образом.

0 голосов
/ 03 апреля 2012

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

Надеюсь, это поможет.

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