我应该在contentprovider的功能上使用ReadWriteLock吗?

在contentprovider的查询中,我执行getReadableDatabase,然后检查其是否打开并进行查询。
但有时它在DatabaseIsClosed实例上崩溃。
这可能是另一个进程执行了一个插入操作,该插入操作执行了一个getWritebleDatabase来关闭第一个。

我正在使用不断查询并插入到contentprovider上的应用程序和服务。因此,似乎contentprovider不是线程安全的。

可以使功能同步吗?

谢谢!

最佳答案

在contentprovider的查询中,我执行getReadableDatabase,然后检查其是否打开并进行查询。但有时它在DatabaseIsClosed实例上崩溃。这可能是另一个进程执行了一个插入操作,该插入操作执行了一个getWritebleDatabase来关闭第一个。


ContentProvider AFAIK的生命周期内,应保持数据库处于打开状态。


  因此,似乎contentprovider不是线程安全的。


AFAIK,ContentProvider只能在一个线程上调用。

ContentProvider主要是外观,不提供任何内部线程安全性。

07-24 09:47
查看更多