gpt4 book ai didi

android - 在具有相同库的应用程序之间共享数据

转载 作者:行者123 更新时间:2023-11-29 01:50:17 25 4
gpt4 key购买 nike

无论如何我可以做这样的事情

  1. 所有数据I/O函数都写在一个库包中

  2. 数据只能在具有此库的应用之间共享(可选)

  3. 每个拥有这个库的应用程序都可以在第一次启动“数据库”,以后安装的应用程序可以访问同一个“数据库”

我认为 ContentProvider 对我来说是一个完美的解决方案,但似乎条件 3 是不可能的。

有什么建议吗?

最佳答案

all data I/O functions are written in a library package

好的。

data can only be shared between apps with this library (optional)

为您的提供商 ( signature ) 提供适当的权限就可以了。

every apps with this library can initiate the "DB" at first time, and later-installed apps can access the same "DB"

I thought ContentProvider is a perfect solution for me, but it seems that condition 3 is impossible.

由您来编写数据的底层结构代码。由于您已经假定提供程序将属于专用库包,因此可能的解决方案是:

  1. 在包 com.mysuite.library 中实现您的提供程序。
  2. 在 Play 商店中发布此应用。
  3. 制作客户端应用 A、B 和 C。
  4. 在 Play 商店中发布它们。
  5. 要求您的用户在应用程序 A、B 或 C 找不到已安装的 com.mysuite.library 时下载此库包。

但是,如果您不想提供中央包,我相信您将需要在您自己的每个应用程序中为具有不同权限的提供程序提供服务(以避免 CONFLICTING_PROVIDER 错误)。在初始化每个客户端时,您首先检查您的命名空间 (com.mysuite.provider*) 中是否有另一个提供者,假设您知道您将要创建的所有可能的权限和/或在搜索时在它们之间迭代 (com.mysuite.provider*)。提供商 1、2 等)。

但是,此提议可能会导致自定义备份出现问题(例如,如果只备份一个客户端),这将强制重新创建数据。它当然有一些注意事项,而且肯定更复杂(丑陋,恕我直言),但它可以发挥作用。

就我个人而言,我会坚持使用选项 1(库包)。在为应用程序下载所需的库包时,我没有看到用户提示。

这只是一个架构决策,真的。

关于android - 在具有相同库的应用程序之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com