Android 如何灵活地设计自定义ContentProvider

Android 如何灵活地设计自定义ContentProvider,android,android-contentprovider,Android,Android Contentprovider,我有一个关于定制ContentProvider实现设计的问题。web上的大多数示例都假设后台有一个SQLite数据库,但在我们的示例中不一定如此。事实上,我们还不知道数据的来源是什么,因为这些数据是由第三方供应商提供的 目前,我们的内部虚拟ContentProvider实现(出于测试目的)实现了ContentProvider\query(…)方法,该方法返回一个游标对象。但是,这对于第三方供应商来说可能是不可取的,因为他们很可能拥有非关系/非SQL类数据。我们努力以尽可能灵活的方式设置接口/系统

我有一个关于定制
ContentProvider
实现设计的问题。web上的大多数示例都假设后台有一个SQLite数据库,但在我们的示例中不一定如此。事实上,我们还不知道数据的来源是什么,因为这些数据是由第三方供应商提供的

目前,我们的内部虚拟
ContentProvider
实现(出于测试目的)实现了
ContentProvider\query(…)
方法,该方法返回一个
游标
对象。但是,这对于第三方供应商来说可能是不可取的,因为他们很可能拥有非关系/非SQL类数据。我们努力以尽可能灵活的方式设置接口/系统,以便无论数据如何存储在另一端(第三方供应商端),我们的代码只需在明确数据如何通过其
内容提供商
提供后进行最小调整

我现在想听听你的意见是:

  • ContentProvider#query(…)
    是否是正确的方法,即
    Cursor
    是否也是非关系/非数据库相关数据的适当返回类型?如果是这样,这意味着我们的第三方供应商必须相应地实现
    游标
    接口

  • 我相信另一种方法是使用
    MatrixCursor
    。它仍将返回一个
    游标
    引用,但该“矩阵”中的行可以是
    对象
    类型。这将留下相当大的灵活性


我很想听听你对此的想法和看法。我可能已经完全监督了一些事情。

游标只是一个游标,您可以使用MatrixCursor,但也可以扩展AbstractWindowedCursor以使其更灵活(特别是在大型数据集中),您还可以使用CursorWrapper稍微更改原始游标行为扭结,这是否意味着,无论我选择什么游标,在我们的例子中,返回游标绝对是一种方法?我想我有点困惑,在访问非数据库类数据时,游标是否是正确的结构。是的,您可以对任何数据使用游标,不仅仅是数据库填充CursorWrapper不是一个接口,它的soncrete类