我应该在contentprovider的功能上使用ReadWriteLock吗?
在contentprovider的查询中,我执行getReadableDatabase,然后检查其是否打开并进行查询。
但有时它在DatabaseIsClosed实例上崩溃。
这可能是另一个进程执行了一个插入操作,该插入操作执行了一个getWritebleDatabase来关闭第一个。
我正在使用不断查询并插入到contentprovider上的应用程序和服务。因此,似乎contentprovider不是线程安全的。
可以使功能同步吗?
谢谢!
最佳答案
在contentprovider的查询中,我执行getReadableDatabase,然后检查其是否打开并进行查询。但有时它在DatabaseIsClosed实例上崩溃。这可能是另一个进程执行了一个插入操作,该插入操作执行了一个getWritebleDatabase来关闭第一个。
在ContentProvider
AFAIK的生命周期内,应保持数据库处于打开状态。
因此,似乎contentprovider不是线程安全的。
AFAIK,ContentProvider
只能在一个线程上调用。ContentProvider
主要是外观,不提供任何内部线程安全性。