Domanda

Dovrei usare un ReadWriteLock sulle funzioni del ContentProvider?

Nella query del ContentProvider faccio getReadableDatabase, quindi verificare se il suo fare aperto e la query. Ma a volte si blocca su DatabaseIsClosed exeption. Questo potrebbe essere che un altro processo fa un inserto che fa un getWritebleDatabase che chiude il primo.

Se si utilizza un'app e un servizio che query e inserto sul ContentProvider costantemente. Così sembra che il ContentProvider non è threadsafe.

Potrebbe contribuire a rendere la funzione di sincronizzazione?

Grazie!

È stato utile?

Soluzione

Nella query del ContentProvider faccio getReadableDatabase, quindi verificare se il suo fare aperto e la query. Ma a volte si blocca su DatabaseIsClosed exeption. Questo potrebbe essere che un altro processo fa un inserto che fa un getWritebleDatabase che chiude il primo.

Si dovrebbe essere mantenendo il vostro aprire il database per la durata del ContentProvider, per quanto ne so.

Così sembra che il ContentProvider non è threadsafe.

per quanto ne so, un ContentProvider è sempre e solo chiamato un thread.

ContentProvider è principalmente una facciata e non fornisce alcuna sicurezza intrinseca filo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top