在我的应用程序中,我有多个 sqlite 数据库,这些数据库都通过内容提供程序导出,以便我的其他应用程序能够读取数据。
有一个包含我所有数据库的内容提供者,还是每个数据库都有一个内容提供者更好?我的其他应用程序一次只需要访问一个数据库。
注意我读过类似的帖子,我的应用程序必须能够有多个数据库。
在我的应用程序中,我有多个 sqlite 数据库,这些数据库都通过内容提供程序导出,以便我的其他应用程序能够读取数据。
有一个包含我所有数据库的内容提供者,还是每个数据库都有一个内容提供者更好?我的其他应用程序一次只需要访问一个数据库。
注意我读过类似的帖子,我的应用程序必须能够有多个数据库。
通常:这取决于:-)
但是,如果您必须使用多个数据库,那么这些数据库可能包含或多或少不相关的数据。在这种情况下,我将为每个数据库使用不同的 ContentProvider。这是对关注点的明确分离,并使 API 更易于理解。
顺便说一句:牢记安全。如果您只希望您的应用程序使用数据,请使用签名访问级别的权限!
如果数据库中的数据不相关,@WolframRittmeyer 的答案就是要走的路。
如果您想公开来自多个来源的相似数据,您可以尝试将多个Cursors
来自不同数据库的数据嵌入到一个MergeCursor
.
请注意,getColumns()
和其他相关方法可能会根据当前MergeCursor
位置返回不同的结果。