С тех пор, как я начал разрабатывать свое приложение Blackberry, самые большие проблемы, с которыми я сталкивался, были связаны с базами данных SQLite.
Сейчас я проверяю свое приложение на стресс-тестах и, когда возникают проблемы.всплываю я обращаюсь к ним, распечатывая статусы на консоли и заботясь о вещах построчно.Прямо сейчас (после нажатия кнопок в моем приложении) я получил ошибку «База данных заблокирована», и я не уверен, что делать.
Кажется, что как только база данных заблокирована, она навсегда заблокирована, пока не будетразблокирован ........ мой вопрос, как я могу разблокировать его ??Прежде всего, как я могу проверить, заблокирован ли он?
Я уверен, что наши пользователи не будут нажимать кнопки, как я, но вы никогда не знаете.Я хочу учесть все возможные сценарии.
Спасибо
РЕДАКТИРОВАТЬ: это то, что происходит в моем приложении ..... Когда я запускаю, он запускает поток, этот поток выполняеточистка одной из моих таблиц, основанная на том, сколько лет определенным частям данных (использует DELETE).Затем поток продолжает получать объект USER из моей БД (только для чтения), затем он использует этот объект USER в качестве параметра для вызова веб-службы.Данные, извлеченные из веб-службы, вставлены в мою базу данных.(Это немного сложнее, чем когда выполняются несколько операций чтения / записи. После этого поток запускает метод обратного вызова для обновления моего пользовательского интерфейса.
Все это работаетЯ могу выйти из приложения, пока поток запущен и перезапущен, и флаг помешает ему запустить новый экземпляр того же потока (если, конечно, другой не будет выполнен).
Теперь моя проблема: домашний экран моего приложения представляет собой список кнопок, когда пользователь нажимает одну из этих кнопок на другую, загружается более подробный список (для этого требуется вызов ТОЛЬКО ЧТЕНИЕ в базу данных) .При запуске приложения (запусквызывающий поток веб-службы), а затем сразу же нажимает кнопку на главном экране, таблица блокируется (не всегда, иногда это занимает 4 или 5 попыток, иногда больше, иногда меньше). Но если я продолжу это делать, БУДЕТв конечном итоге блокировка делает невозможным выполнение каких-либо вызовов для моей БД, следовательно, больше нет пользовательского интерфейса (который зависит от БД).
вызов БД, которыйна втором экране отображается надпись ТОЛЬКО ДЛЯ ЧТЕНИЯ, разве я не могу иметь столько их, сколько мне нужно ??Что вызывает блокировку БД ??В чем разница между блокировкой БД и ошибкой файловой системы (12) ??