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

时间:2011-01-30 09:48:50

标签: android architecture android-contentprovider

大家好!

我想知道是否有一个通常首选的实现范例来尊重是否需要两个完全不同的Android应用程序来访问和操作同一个数据库?是否建议甚至技术上都可以这样做?这样的架构会是什么样的?

截至目前,我正在考虑让两个应用程序实现自己的ContentProvider s(两个ContentProvider将访问同一个数据库,但保证永远不会同时进行)。我还想过构建一个公共内容提供程序,让两个应用程序在访问数据库时都使用它。我更喜欢第一个例子,但没有完全抛弃后者。

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

因此,这两个应用程序有两个方面:一个“管理”方面(管理数据结构和数据行之间的关系)和一个“通用用户”方面(读取/修改实际数据值)。在单独的应用程序中将这两个方面分开是一个慎重的选择。

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

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

1 个答案:

答案 0 :(得分:1)

DBM,

是的,它在Android上被接受,鼓励和可能。你确实有第三个选项(毫无疑问会给我一些刻录的评论),这就是将ContentProvider(1)放入一个APK所有的自己。但是,鉴于您只有2种类型,您可以翻转四分之一的主机所在的apk。我会选择管理员应用程序,但这对我来说是主观的。

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

弗兰克