场景如下:
- 我有一个基本上由地图视图组成的安卓应用程序。
- 此应用程序查询各种网络服务,例如 Foursquare 或 Wikipedia,以获取位置列表并将其绘制到地图中。
问题,
- 有谁知道如何构建一个数据源是 Web 服务(如上面提到的那些)而不是数据库的内容提供者?如果你能指出我正确的方向,那就太好了。
谢谢!
场景如下:
问题,
谢谢!
我一直在寻找与您相同的东西,并且遇到了 DataDroid http://www.datadroidlib.com/。我认为它更易于使用,并且如果您的 Web 服务面向 REST,那么它是一种处理 REST 的简单方法。
编辑:
DataDroid 现在被标记为已弃用。他们搬到 Robospice 见https://github.com/stephanenicolas/robospice
有谁知道如何构建一个内容提供者,其中数据源是一个 Web 服务(如上面提到的那些)而不是一个数据库?
考虑到以下答案可能被认为是一种相当老式的“手动”方法。
您可以构建一个查询Web 服务的内容提供程序,并将获得的结果转换为游标。
要查询 Web 服务,您可以使用HttpClient和HttpGet请求。您可以在MyKong上找到有关如何执行此操作的教程。还有一些更新的替代方案可以做到这一点。
在解析从 Web 服务获得的搜索结果时,您可以使用MatrixCursor类构建自己的光标,方法是使用 addRow ()为每个单独的结果添加行。
如果要这样做,请确保始终通过后台线程(即使用CursorLoader、AsyncTask或其他形式的线程)调用 Content Provider,否则您的网络操作将在主 UI 线程上结束。