数据库处理有2个进程

Cod*_*ley 22 database sqlite android synchronize android-contentprovider

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

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

每个都作为不同的进程运行.问题是他们都共享一个数据库.当服务尝试写入某些内容并且UI正在读取数据时,我经常会遇到数据库锁定错误.反之亦然.怎么办呢?

  • 用于访问DB的类是单例类.但由于UI和服务都是两个不同的过程,我认为有两个单身.所以这没有用.
  • synchronise我猜想,即使是因为2个不同的过程也无济于事.
  • Content Providers 也许是一个选项,但由于我使用复杂的查询来挖掘信息,所以也很难使用它.

如何让两个进程共享数据库.任何提示将不胜感激.

小智 8

使用内容提供商是一种选择.另一个是看看Berkeley DB.BDB SQL API与SQLite兼容,BDB锁管理器允许多个线程和/或进程同时读/写数据库.