6

场景如下:

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

问题,

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

谢谢!

4

2 回答 2

1

我一直在寻找与您相同的东西,并且遇到了 DataDroid http://www.datadroidlib.com/。我认为它更易于使用,并且如果您的 Web 服务面向 REST,那么它是一种处理 REST 的简单方法。

编辑:

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

于 2013-02-08T12:30:37.520 回答
1

有谁知道如何构建一个内容提供者,其中数据源是一个 Web 服务(如上面提到的那些)而不是一个数据库?

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

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

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

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

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

于 2014-11-04T17:03:43.453 回答