【问题标题】:ContentProvider with WebService as source以 WebService 为源的 ContentProvider
【发布时间】:2011-01-18 15:30:27
【问题描述】:

场景如下:

  • 我有一个基本上由地图视图组成的 Android 应用程序。
  • 此应用查询各种网络服务,例如 Foursquare 或 Wikipedia,以获取位置列表并将其绘制到地图中。

问题,

  • 有谁知道如何构建一个内容提供程序,其中数据源是一个 Web 服务(如上面提到的那些)而不是一个数据库?如果您能指出正确的方向,那就太好了。

谢谢!

【问题讨论】:

  • 我只是想做同样的事情,但不是直接查询 Web 服务,而是由内容提供者来做。通过这种方式,我可以使用外部应用程序连接到不同的网络服务。
  • 更多 ContentProviders 到 Web 服务的选项在stackoverflow.com/questions/4097686/… 中提到

标签: android google-maps android-contentprovider point-of-interest


【解决方案1】:

我正在寻找和你一样的东西,我遇到了 DataDroid http://www.datadroidlib.com/。如果您的网络服务是面向 REST 的,我认为它更易于使用并且是处理 REST 的一种直接方式。

编辑:

DataDroid 现在被标记为已弃用。他们搬到 Robospice 请参阅https://github.com/stephanenicolas/robospice

【讨论】:

    【解决方案2】:

    有人知道如何构建一个数据源是 Web 服务(如上面提到的)而不是 db 的内容提供程序吗?

    考虑到以下答案可能被认为是一种相当老式的“手动”方法。

    您可以构建一个查询 Web 服务的内容提供程序,并将获得的结果转换为光标

    要查询 Web 服务,您可以使用 HttpClientHttpGet 请求。您可以在MyKong 上找到有关如何执行此操作的教程。还有一些newer alternatives可以做到这一点。

    在解析您从 Web 服务获得的搜索结果时,您可以使用 MatrixCursor 类构建您自己的游标,方法是使用 addRow() 为每个单独的结果添加行。

    如果您要这样做,请确保您始终通过后台线程(即使用CursorLoaderAsyncTask 或其他形式的线程)调用您的内容提供程序,否则您的网络操作将在主 UI 线程上结束。

    【讨论】:

      猜你喜欢
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多