我对自定义ContentProvider
实现的设计有疑问。 Web上的大多数示例都假设背景中有一个SQLite数据库,但在我们的案例中并不一定如此。事实上,我们还不知道数据的来源是什么,因为这些数据是由第三方供应商提供的。
目前,我们的内部虚拟ContentProvider
实现(用于测试目的)实现了返回ContentProvider#query(...)
对象的Cursor
方法。但是,这可能不适合第三方供应商,因为他们很可能拥有非关系/非类似SQL的数据。我们努力以这样的方式设置接口/系统,使其尽可能灵活,这样,无论数据如何存储在另一端(第三方供应商的终端),我们的代码只需要一旦明确如何通过ContentProvider
提供数据,就可以进行最低限度的调整。
我现在想要你的意见是:
ContentProvider#query(...)
是否是正确的方法,即Cursor
是非关系/非数据库相关数据的适当返回类型?如果是这样,那就意味着我们的第三方供应商必须相应地实施Cursor
接口?
我认为另一种方法是使用MatrixCursor
。它仍然会返回Cursor
引用,但该行中的行&#39}矩阵'可以是Object
类型。这会留下相当大的灵活性。
我很想听听你对此的看法和意见。我可能完全监督了一些事情。