Question

Dois-je utiliser un ReadWriteLock sur les fonctions du ContentProvider?

Dans la requête du ContentProvider je getReadableDatabase, puis vérifier si son ouverture et faire la requête. Mais parfois, il se bloque sur DatabaseIsClosed exeption. Cela pourrait être un autre procédé que fait un insert qui fait un getWritebleDatabase qui ferme le premier.

J'utilise une application et un service qui demande et insertion sur le ContentProvider constamment. Il semble donc que le ContentProvider n'est pas threadsafe.

pourrait-il aider à faire la fonction de synchronisation?

Merci!

Était-ce utile?

La solution

Dans la requête du ContentProvider je getReadableDatabase, puis vérifier si son ouverture et faire la requête. Mais parfois, il se bloque sur DatabaseIsClosed exeption. Cela pourrait être un autre procédé que fait un insert qui fait un getWritebleDatabase qui ferme le premier.

Vous devriez garder votre ouverture base de données pour la durée de vie du ContentProvider, autant que je sache.

Il semble donc que le ContentProvider n'est pas threadsafe.

AFAIK, un ContentProvider est jamais appelée sur un fil.

ContentProvider est la plupart du temps une façade et ne fournit aucune sécurité intrinsèque fil.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top