android - 设计方法 : Android Restful with JSON

标签 android json web-services design-patterns rest

我正在开发一个 parking 系统,其中移动设备从服务器数据库查询 parking 数据。换句话说,用户请求一个空 parking 位,服务器会在他的设备上向他发送一个空闲 parking 位编号。我正在使用带有 JSON 的 Restful 架构。

我看了 Google I/0 2010 休息客户端应用视频,他解释说你可以使用 3 种设计模式:

  1. 服务接口(interface)
  2. 内容提供者 API
  3. 内容提供者和同步器

我无法决定这 3 个中的哪一个最适合我的应用程序,有人有任何有用的提示/知识吗?

非常感谢任何帮助!

最佳答案

我已经根据 Google I/O session 中的建议实现了一个解决方案,对我来说效果非常好。

要从远程服务器检索数据,后台线程是必须的,因为您不能在等待服务器响应时阻塞 UI 线程。最简单的方法是使用 AsyncTask,它在 doInBackground 中从服务器获取数据,然后在 onPostExecute 中执行需要发生的任何 UI 更新或数据保存。这种方法对于很多用例来说已经足够好了,但是 Google I/O session 正在解决的问题是,如果您的 Activity 在等待服务器响应时被中断,您将丢失数据。该 session 中提出的解决方案是关于如何保存数据的建议,以便可以以不附加到 Activity 的方式存储数据。

使用服务,您可以将数据检索与 Activity 分开。 (请记住,您仍然需要在服务中创建一个单独的线程来检索数据,因为服务仍然在 UI 线程上运行。)当将信息从服务传递到请求的 Activity 时,ContentProvider 开始发挥作用服务器数据。您可以使用数据库来存储响应。然后Activity可以从数据库中获取响应。

SyncAdapter 可用于重试失败的服务器调用和/或从服务器获取数据,而无需应用程序特别请求,因此它会在应用程序需要时保持新鲜并准备就绪。当然,这确实应该非常谨慎地使用,因为它会耗尽电池电量。

我强烈建议至少使用 Service/ContentProvider 方法。我也能够使用该解决方案轻松地将缓存机制集成到我的应用程序中。

希望对您有所帮助。

关于android - 设计方法 : Android Restful with JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8528354/

相关文章:

android - 我应该如何为 Android 应用程序存储个人资料照片数据库/服务器端?

android - 根据行为在不同的 fragment 上使用相同的工具栏折叠工具栏布局

json - Golang : Protobuff generated Struct is not decoding child attribute for json. 解码

asp.net - 增加 IIS7 中 Web 服务的最大并发连接数(负载测试)

c# - 在 asp.net webservice 中调用 COM DLL 时出错

java - java中动态更新JSON文档

java - Android 用户界面停止响应

android - 完整的 Android Eclipse 开发包

android - 使用 Android 内置的手势监听器和缩放监听器实现捏缩放和拖动

json - 从结构中删除字段或将它们隐藏在 JSON 响应中