两个内容提供商访问同一个数据库

2024-01-25

Hi all!

我想知道如果希望两个完全不同的 Android 应用程序访问和操作同一个数据库,是否存在一种普遍首选的实现范例值得尊重?是否建议甚至技术上可以这样做?这样的架构会是什么样子?

截至目前,我正在考虑让这两个应用程序实现自己的ContentProviders (both ContentProviders 将访问同一个数据库,但保证不会同时访问)。我还考虑过构建一个通用的内容提供程序,并让两个应用程序在访问数据库时都使用该内容提供程序。我更喜欢第一个例子,但还没有完全放弃后面的例子。

理由:
我有两个需要访问公共数据库的应用程序。数据库本身存储数据的同时也描述了数据行之间的关系,通常描述一组“表单”,其中表单内容; UI 元素(如文本框、按钮和不同类型的列表)是可定制的。两个应用程序都使用数据库中的“描述数据”在运行时生成相应应用程序 UI 的一部分。

因此,这两个应用程序有两个方面:一是“管理”方面(管理数据结构和数据行之间的关系),二是“通用用户”方面(读取/修改实际数据值)。将这两个方面分离到不同的应用程序中是经过深思熟虑的选择。

NOTE!数据值与数据结构分离,即values存储在一个单独的表中,并且结构在另一个表中描述。这意味着这两个应用程序本质上将修改同一数据库中的两个不同表,并且可以这么说,它们永远不会修改“另一个表”。

任何想法都将不胜感激。该应用程序尚处于规划阶段,因此现在是进行根本性更改的时候了。


Dbm,

是的,它被接受、鼓励并且可以在 Android 上实现。你确实有第三个选择(这无疑会给我带来一些激烈的评论),那就是将 ContentProvider (1) 放入一个完全属于它自己的 APK 中。但是,鉴于您只有 2 种类型,您可以翻转四分之一的 apk 托管。我会选择管理应用程序,但这对我来说是主观的。

如果您要麻烦地创建两个应用程序,那么您就“先验”了解每个应用程序将做什么,以及每个应用程序可以操作什么类型的数据。因此,我会得出一个单一的 CP 接口,并根据您所描述的行为来限制每个应用程序调用的内容。

Frank

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个内容提供商访问同一个数据库 的相关文章

  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • 如何重试已消耗的 Observable?

    我正在尝试重新执行失败的已定义可观察对象 一起使用 Retrofit2 和 RxJava2 我想在单击按钮时重试特定请求及其订阅和行为 那可能吗 service excecuteLoginService url tokenModel Ret
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • Android SIP 来电使用带有广播接收器的服务

    大家好 其实我正在尝试创建一个应用程序 支持基于 SIP 通过互联网进行音频呼叫 这里使用本机 sip 我遇到了来电问题 我已经完成了服务的注册部分 但是在接听电话时我无法接听电话 请帮助我 Service file package exa
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • 我想实现下面的布局,按钮应该在屏幕底部,当惰性列被填充时,按钮不应该出去

    顶部有惰性列 惰性列下方有输入电话号码布局并从电话簿布局添加联系人 我希望当未添加联系人时此布局位于顶部 当我添加大量联系人时输入电话号码并添加电话簿布局中的联系人会随着惰性列滚动并移出屏幕 我不让他们走出屏幕 当接触较多时 它们必须粘在底
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • android sdk 的位置尚未在 Windows 操作系统的首选项中设置

    在 Eclipse 上 我转到 windows gt Android SDK 和 AVD Manager 然后弹出此消息 Android sdk 的位置尚未在首选项中设置 进入首选项 在侧边栏找到 Android 然后会出现一个 SDK 位
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 如何使用 Javascript WebCrypto API 加载 PKCS#12 数字证书

    我正在尝试使用 WebCrypto API 签署数据 但我真的很想使用用户的 PKCS 12 来签署数据 而不是创建私钥 公钥并将其导出到 pkcs 1 或 8 我已经阅读了 W3C 规范 但无法充分理解它 也找不到任何关于如何执行此操作的
  • 模拟实例属性

    请帮助我理解为什么以下不起作用 特别是 被测试类的实例属性对 Python 不可见unittest Mock 在下面的例子中bar实例属性不可访问 返回的错误是 AttributeError
  • Struts 2 选择带有数组列表值的标签

    我正在开发一个简单的 struts 应用程序 在我的 JSP 中 我有一个下拉列表框 使用s select标签 我需要用操作类中的数组列表值填充这些值 我怎样才能做到这一点 需要进行哪些改变structs xml文件来完成这个 JSP
  • 在WAMP中更改MySQL root密码后无法连接

    这是 WAMPSERVER 中最常见的问题之一 我也遇到了这个问题 并在此处以同一标题发布了我的解决方案 但在没有得到适当的回复 解决方案后 我不得不转储 Wampserver 并安装 XAMPP 运行顺利 为了解决问题Scroll dow
  • 应用重力的宝石镶嵌位板

    我正在尝试用位板制作一个宝石迷阵级联模拟器 到目前为止 我已经能够检测并移除火柴 但现在我需要让珠宝掉下来 我的状态由一系列位板表示 每个位板对应一种宝石 我有一张所有被移除的珠宝的面具 是否可以使用一些按位魔法来做到这一点 两个初始位板的
  • aws 负载均衡器未向实例注册

    I use kubeadm启动集群AWS 我可以成功创建负载均衡器AWS通过使用kubectl 但负载均衡器未向任何 EC2 实例注册 这会导致公共无法访问该服务的问题 从观察来看 ELB创建时 在所有子网下都找不到健康的实例 我很确定我正
  • 如何衡量用户桌面应用程序的使用情况? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我用 c NET 3 5 编写了一个
  • 新的核心数据实体与现有核心数据实体相同:单独的实体还是其他解决方案?

    概述 我正在设计一个餐厅管理应用程序 并且有一个名为 Order 的实体 其中包含 Items 由于一家餐厅可以运营多年 拥有数千个已完成的 订单 并且为了使我的应用程序的网络方面更容易并保持数据库快速运行 我想引入 ClosedOrder
  • 将 pcm 加载到 AVAudioPCMBuffer 中

    我有这个代码 func loadSoundfont pitch String let path String Bundle main path forResource self id pitch ofType f32 let url URL
  • MUI TextField sx props 不应用样式

    我正在尝试使用一次性方式设置 TextField 组件的样式sx prop
  • 启动时结构崩溃

    我的应用程序在 onCreate 函数内的这一行崩溃了 Fabric with this new Crashlytics 该设备是 SAMSUNG SM G313 HZ 运行 4 4 2 我已向他们的 Twitter 开发论坛举报 但我的帖
  • 为什么 Microsoft Word 2007 中的 VBA IDE 智能感知不断更改特定变量类型名称的大小写?

    这是我问过的最奇怪的问题 我什至不知道如何表达它 我记得类似的事情早在 VB6 IDE 中就发生过 但我忘记了修复方法 如果是这种情况 那么这就是 VB IDE 中的一个非常古老的错误 问题是这样的 当我不小心输入时 我正在编写一个简单的
  • 用于时间跟踪的 MongoDB 架构设计

    我创建了一个简单的时间跟踪应用程序 人们可以在其中计时 超时并标记休息时间 此跟踪的中心对象是Event产生于User 这与用户状态确保状态管理正确 这是减去的架构更新时间 创建于 fields userId type mongoose S
  • 实体框架在更新实体时表示属性为空

    我正在尝试将新实体添加到现有集合中 但是 当这样做时 父 实体抱怨其他导航属性为空 尽管它们不是 Error 类型异常 发生 System Data Entity Validation DbEntityValidationException
  • 使用自组织映射进行降维

    过去几个月我一直在研究自组织映射 SOM 但是我在理解降维部分仍然有些困惑 你能建议任何简单的方法来理解 SOM 在任何现实世界数据集上的实际工作吗 就像来自 UCI 存储库的数据集 好的 首先参考一些之前的相关问题 这将使您更好地理解 S
  • 如何将 AnyEvent::Handler 与具有端口重用的套接字一起使用

    最近我遇到了一个很棒的 Perl 模块 AnyEvent 它允许用户进行异步 事件驱动的编程 创建了以下代码片段 效果很好 我遇到的问题是 在打开和关闭大量套接字后 它很快耗尽了所有客户端端口 netstat ant 显示 20 000 多
  • 如何从 Firebase 中删除数据库?

    这一定是在盯着我的脸 但没有看到命令 如何从新 Firebase 的控制台中删除未使用的 Firebase 数据库 谷歌没有提供答案 这还是第一次 如果您不想删除项目而只想删除数据库 另一种方法是在计算机上创建一个文件empty json像
  • 从 InnerHTML 内的代码隐藏向页面添加 ASP 控件

    我正在尝试从后面的代码向网页添加一个按钮 我的主页上有一个空的 div 在需要时可以打开和关闭 然而 我希望动态创建的内容 因为 div 内容可以根据条件而改变 我意识到在我的 ASP 控件中我使用了 反斜杠 来取消我的 HTML 我现在遇
  • 两对多的数据关系是否应该被视为多对多?

    我有 2 个数据库表 Teams 和 Games 出于此问题的目的 我们正在处理足球队和比赛 每场比赛只有两支球队 通常是主队和客队 但有时两支球队都可以保持中立 我的问题是我是否应该使用 Games 表中的 2 个外键 home team
  • 两个内容提供商访问同一个数据库

    Hi all 我想知道如果希望两个完全不同的 Android 应用程序访问和操作同一个数据库 是否存在一种普遍首选的实现范例值得尊重 是否建议甚至技术上可以这样做 这样的架构会是什么样子 截至目前 我正在考虑让这两个应用程序实现自己的Con