Android sqlite并发无异常

标签 android sqlite

Android 上的 Sqlite 允许您从多个进程访问数据库以进行读取,但如果您当前正在从一个进程写入,则从其他进程读取和写入将抛出异常,因为第一个写入锁定了数据库。

我所说的“procs”是指同一应用中的其他线程。

是否有一种标准方法可以让其他线程简单地等待直到数据库再次可用,可能有指定的超时,而不是抛出异常?

期待“你为什么那样做?”答案,这就是我们正在做的方式,仅此而已。我们也不打算使用内容提供者。只是想要一种同步数据库访问的方法。

假设没有标准的方法来做到这一点,我们可能最终会围绕数据库调用编写一个包装器来进行一些线程同步。

最佳答案

只要您使用相同的 SQLiteDatabase 对象,同步就会为您完成。

所以如果你通过单例访问对象,应该没有问题。如果你想实现超时,你可能想添加一些进一步的逻辑,例如等待/通知或类似的东西。

关于Android sqlite并发无异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610147/

相关文章:

android - 附加数据库在 Android 上给出 "database is already in use"

SQLite:如何更新另一个的值?

android - 在 SQLite 中存储浮点值会更改 Room DB 中的小数精度

python - sqlite全文搜索中的sql注入(inject)

ios - 如何在sqlite中使用循环从特定列获取名称

android - 在使用 Delphi 构建的 Firemonkey Android 应用程序中切换屏幕的正确方法是什么?

android - GSM 03.38 编码方案中的转义码

android - 在 Sqlite 和 MySQL 中使用相同的数据库记录

java - Android 上的协议(protocol)生成的 Grpc 服务中的方法编码器错误

android gmail 打开应用程序附件 URI 问题与新的 Gmail 应用程序版本