ContentProvider以Web Service作为源

时间:2011-01-18 15:30:28

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

方案如下:

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

问题,

  • 有人知道如何构建内容提供程序,其中数据源是Web服务(如上所述)而不是数据库吗?如果你能指出我正确的方向,那就太好了。

谢谢!

2 个答案:

答案 0 :(得分:1)

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

修改:

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

答案 1 :(得分:1)

  

是否有人知道如何构建内容提供者,其中数据源是Web服务(如上所述)而不是数据库?

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

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

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

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

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