Android 如何安全地从另一个进程可能正在使用的数据库中读取数据?

Android 如何安全地从另一个进程可能正在使用的数据库中读取数据?,android,sqlite,thread-safety,copy,Android,Sqlite,Thread Safety,Copy,我想从webview.db数据库中读取一些数据,该数据库是在应用程序使用webview时创建的。但是,该数据库是由类管理的,这些类主要是包级别的,或者不提供太多通过API访问的方式 既然我不能共享他们的数据库对象或锁,我如何安全地从该数据库中读取内容,而不会出现“database is locked”错误或类似异常 我只需要阅读,不需要写作 如果无法安全地获取其上的sql查询/游标,是否有方法以线程安全的方式安全地复制实际的webview.db文件?是否存在获取损坏副本的危险 非常感谢我认为所有

我想从webview.db数据库中读取一些数据,该数据库是在应用程序使用webview时创建的。但是,该数据库是由类管理的,这些类主要是包级别的,或者不提供太多通过API访问的方式

既然我不能共享他们的数据库对象或锁,我如何安全地从该数据库中读取内容,而不会出现“database is locked”错误或类似异常

我只需要阅读,不需要写作

如果无法安全地获取其上的sql查询/游标,是否有方法以线程安全的方式安全地复制实际的webview.db文件?是否存在获取损坏副本的危险


非常感谢

我认为所有锁都在sqlite级别,而不是在java代码中,因此您应该能够轻松打开数据库并从中读取,而不会混淆webview。
但是,出于同样的原因,您应该准备好锁定错误,并重试查询,直到锁定消失。当webview执行数据更改语句时,数据库将被锁定。

希望webview在运行的整个过程中不会对所有db设置独占锁,但我看不出原因。

我认为所有锁都在sqlite级别,而不是在java代码中,因此您应该能够在不混淆webview的情况下打开db并读取它。
但是,出于同样的原因,您应该准备好锁定错误,并重试查询,直到锁定消失。当webview执行数据更改语句时,数据库将被锁定。
希望webview在整个运行过程中不会对所有db设置独占锁定,但我看不出有什么原因