多个数据库和内容提供商

3
在我的应用中,我有多个sqlite数据库,所有这些数据库都通过内容提供程序导出,以便我的其他应用程序能够读取数据。
是更好地拥有一个包含所有数据库的单个内容提供程序,还是每个数据库都有一个内容提供程序?我的其他应用程序一次只需要访问一个数据库。
注:我已经阅读了类似的帖子,并且我的应用程序必须能够拥有多个数据库。
2个回答

4

常常是这样:情况因人而异 :-)

但如果您必须使用多个数据库,那么这些数据库很可能包含更多或更少不相关的数据。在这种情况下,我建议为每个数据库使用不同的ContentProvider。这是对关注点的明确分离,并使API更易于理解。

顺便提一句:要注意安全性。如果您只想让您的应用程序使用数据,请使用签名访问级别的权限


谢谢 - 这也是我得出的结论。关于签名访问级别的好建议 - 我没有意识到我可以这样做! - user1791710
@WolframRittmeyer 请问您能否看一下这个问题并给出您的意见 http://stackoverflow.com/questions/27361319/disadvantages-of-using-a-content-provider-for-internal-use-with-a-complex-databa - eddy
我认为@karakuri的回答非常像我自己会回答的。 - Wolfram Rittmeyer

0

如果数据库中的数据没有关联,@WolframRittmeyer的答案是正确的。

如果您想从多个来源公开类似的数据,则可以尝试将来自不同数据库的多个Cursors嵌入一个{{link1:MergeCursor}}中。

请注意,getColumns()和其他相关方法可能会根据当前MergeCursor位置返回不同的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接