我有一个包含两部分的应用程序.

  • 创建内容的服务.
  • 使用内容的应用程序

每一个都作为不同的进程运行.问题是它们都共享一个数据库.我经常会遇到数据库锁定错误,无论是在服务try 写入内容时,还是在UI读取数据时.反之亦然.

  • 用于访问数据库的类是单例类.但是因为UI和服务都是两个不同的进程,所以我假设有两个单例.所以那帮不上忙.
  • 我想,即使是synchronise个也没用,因为还是因为两个不同的过程.
  • Content Providers可能是一个选项,但因为我使用复杂的查询来挖掘信息,所以也很难使用它.

如何让这两个进程共享数据库.

推荐答案

使用内容Provider 是一种 Select .另外一个就是看一下Berkeley DB.BDB SQL API与SQLite兼容,并且BDB锁管理器允许多个线程和/或进程并发地读/写数据库.

Database相关问答推荐

如何避免在模式更改时重新同步微服务数据库之间的整个表?

为Postgres数据库字段创建复合索引

更新数据后,TableView停止按搜索栏进行筛选

Oracle批量数据处理

Mongodb聚合$group,限制数组长度

什么是 CREATE VIEW IF NOT EXISTS in postgresql

如何理解 CAP 定理的可用性?

函数到关系映射比对象到关系更容易吗?

复合主键

Select 正确的数据库:MySQL 与Everything 其它数据库

Java中基于文件的数据库

在 MongoDB 中模拟关系

如何允许多个用户同时连接到我的 H2 数据库?

数据库中空值(nulls)使用的空间

SQL查询7天前的数据

应用程序用户应该是数据库用户吗?

Android 上的测试数据库:ProviderTestCase2 还是 RenamingDelegatingContext?

Oracle:如何在 Oracle SQL 中将十六进制转换为十进制?

如何在没有验证提取的情况下将 MSSQLServer 数据库提取为 .dacpac?

试图在我的环境中设置 Postgres,但似乎无法获得 intidb 的权限