Вопрос

Должен ли я использовать readwritelock на функциях ContentProvider?

В запросе ContentProvider я делаю getReadabledAtabase, затем проверьте, открыт ли он и сделайте запрос. Но иногда он сбои в базе данных, представленной на экспозиции. Это может случиться так, что другой процесс выполняет вставку, которая выполняет getWriteBledatabase, которая закрывает первый.

Я использую приложение и сервис, который постоянно запрашиваю и вставляю ContentProvider. Таким образом, кажется, что ContentProvider не ThreadSafe.

Может ли это помочь сделать функцию синхронизироваться?

Спасибо!

Это было полезно?

Решение

В запросе ContentProvider я делаю getReadabledAtabase, затем проверьте, открыт ли он и сделайте запрос. Но иногда он сбои в базе данных, представленной на экспозиции. Это может случиться так, что другой процесс выполняет вставку, которая выполняет getWriteBledatabase, которая закрывает первый.

Вы должны держать свою базу данных открытой для жизни ContentProvider, НАСКОЛЬКО МНЕ ИЗВЕСТНО.

Таким образом, кажется, что ContentProvider не ThreadSafe.

Afaik, а ContentProvider вызывает только одну ветку.

ContentProvider в основном фасад и не обеспечивает никакой внутренней безопасности нити.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top