在我的应用中,我有多个sqlite数据库,这些数据库都通过内容提供商导出,以便我的其他应用能够读取数据。
让单个内容提供商包含我的所有数据库或每个数据库的内容提供商更好吗?我的其他应用程序一次只需要访问一个数据库。
N.B。我已经阅读了类似的帖子,我的应用程序必须能够拥有多个数据库。
答案 0 :(得分:4)
经常:这取决于: - )
但是如果你必须使用多个数据库,那么那些包含或多或少不相关的数据的可能性很大。在这种情况下我将为每个数据库使用不同的ContentProvider 。这是对问题的明确分离,使API更易于理解。
BTW:牢记安全性。如果您只希望自己的应用使用这些数据,请使用signature access level for the permissions!
答案 1 :(得分:0)
@ WolframRittmeyer的回答是如果数据库中的数据不相关的话。
如果您想公开来自多个来源的类似数据,可以尝试将来自不同数据库的多个Cursors
嵌入到一个MergeCursor
中。
请注意getColumns()
和其他相关方法可能会根据当前MergeCursor
位置返回不同的结果。