作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有几个基于同一个引擎构建的应用程序。该引擎将数据存储在 SQLite 中。所有应用程序的数据库结构都是相同的。我需要为所有这些应用程序组织一个公共(public)存储。
例如,有一个应用程序 A 和 B。首先用户安装了应用程序 A 并添加了数据,然后安装了应用程序 B,这是同步这两个应用程序的数据库所必需的。使用 Content Providers 的功能将不起作用,因为在这种情况下,如果没有应用程序 A,应用程序 B 将无法运行。而且我们也不知道用户首先安装了哪个应用程序。
有一个同步所有应用程序数据库的想法,每个应用程序将保留其自己的数据库,但我将拥有数据库的副本。意味着安装的应用程序数量与我将拥有的数据库副本数量一样多。
也许有某种巧妙的方法可以实现这个想法?
最佳答案
为什么不尝试使用 "sharedUserId"在您所有的应用程序中。有了它,您也可以访问其他应用程序的数据。
假设您已经知道所有其他应用程序,在第一次加载每个应用程序时,您会开始搜索创建数据库的公共(public)文件夹。该文件夹可以在您的 SD 卡中。如果在那里找到 DB 文件,则可以打开并使用它。否则你创建一个。然后在所有应用程序中使用相同的数据库?
我不确定从各种应用程序打开/写入同一个数据库有什么影响。也许您需要找出一种在写入期间锁定机制的方法(也许在写入数据库时创建一个 .lock 文件?)
关于android - 如何将几个应用程序的数据存储在一个地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28329690/
我是一名优秀的程序员,十分优秀!