我应该在contentprovider的函数上使用ReadWriteLock吗?Android contentprovider锁定
在contentprovider的查询中,我执行getReadableDatabase,然后检查它是否打开并执行查询。 但有时它会在DatabaseIsClosed exeption上崩溃。 这可能是一个其他进程做了一个插入,它执行一个getWritebleDatabase关闭第一个。
我正在使用一个应用程序和服务谁不断地查询和插入contentprovider。因此,内容提供者似乎不是线程安全的。
它可以帮助使功能同步?
谢谢!
在[AlarmProvider]里面(http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/2.2.1_r1/com/android/alarmclock /AlarmProvider.java#AlarmProvider),他们也会在每个插入/查询/更新中获得一个新的可读/可写数据库。像我一样。但他们不关闭收到的数据库,这是什么? 这也应该是不稳定的,但我想我们经常查询并插入AlarmProvider。 –
@CommonsWare你可能想要更新你的答案......按照[文档](http://developer.android.com/reference/android/content/ContentProvider),可以一次从多个线程调用“ContentProvider”。 HTML)。公平地说,我认为去年九月这种情况并不明显。 :) –
@AlexLockwood:是的,为什么想要使用“ContentProvider”的早期参数之一是它提供的线程安全性......事实并非如此。感谢您指出错误的答案! – CommonsWare