以 WebService 作为源的 ContentProvider

发布于 2024-10-12 11:20:24 字数 236 浏览 8 评论 0原文

场景如下:

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

问题是,

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

谢谢!

The scenario is the following:

  • I've got an android app that basically consists of a mapview.
  • This app queries various web services such as Foursquare or Wikipedia to obtain a list of locations and plot them into the map.

The question,

  • Does anybody know how to build a Content Provider where the data source is a web service (like the ones mentioned above) and not a db? It'd be great if you could point me in the right direction.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不再让梦枯萎 2024-10-19 11:20:24

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

编辑:

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

I was looking for the same thing as you were and i got across DataDroid http://www.datadroidlib.com/. I think it's easier to use and it's a straightforward way to handle REST if your webservice is REST oriented.

Edit:

DataDroid is now marked as deprecated. They move to Robospice see https://github.com/stephanenicolas/robospice

篱下浅笙歌 2024-10-19 11:20:24

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

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

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

要查询网络服务,您可以使用 HttpClientHttpGet 请求。您可以在 MyKong 关于如何做到这一点。还有一些较新的替代方案可以做到这一点。

在解析从 Web 服务获得的搜索结果时,您可以使用 MatrixCursor 类,通过使用 addRow() 为每个单独的结果添加行。

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

Does anybody know how to build a Content Provider where the data source is a web service (like the ones mentioned above) and not a db?

Take into account the following answer may be considered a rather old-fashioned 'manual' method.

You could build a content provider that queries the web service, and converts the obtained result into a cursor.

To query the web service you could use HttpClient and HttpGet request. You can find a tutorial on MyKong on how to do this. There are also some newer alternatives to do this.

While parsing the search result you get from the web service, you can build your own cursor with the MatrixCursor class by adding rows with addRow() for every individual result.

If you were to do this, make sure you always call your Content Provider through a background thread (i.e. using CursorLoader, AsyncTask, or another form of threading), otherwise your network operation would end up on the main UI thread.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文