设计方法:Android Restful with JSON

Design Approach: Android Restful with JSON

我正在开发一个停车系统,移动设备从服务器数据库查询停车数据。换句话说,用户请求一个空的停车位,服务器会在他的设备上给他发送一个免费的停车位号码。我在JSON中使用一个RESTful架构。

我观看了Google I/0 2010 REST客户端应用程序视频,他解释说您可以使用3种设计模式:

  • 服务API
  • 内容提供程序API
  • 内容提供商和同步适配器
  • 我不能决定这3个中哪一个最适合我的应用程序,有人有任何有用的提示/知识吗?

    非常感谢您的帮助!


    我已经使用谷歌I/O会话中的建议实现了一个解决方案,它对我来说非常有效。

    对于从远程服务器检索数据,后台线程是必须的,因为在等待服务器响应时不能阻塞UI线程。最简单的方法是使用AsyncTask,它从doInBackground中的服务器获取数据,然后对onPostExecute中需要发生的数据进行任何UI更新或保存。这种方法在很多用例中都能很好地工作,但是Google I/O会话所解决的问题是,如果在等待服务器响应的过程中您的活动被中断,那么您将丢失数据。该会话中提出的解决方案是关于如何保存数据的建议,以便以不附加到活动的方式存储数据。

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

    SyncAdapter可用于重试失败的服务器调用和/或从服务器获取数据,而无需应用程序特别请求,因此当应用程序需要时,它将是全新的和就绪的。当然,它的使用应该非常谨慎,因为它会让电池消耗掉很多电量。

    我强烈建议至少使用服务/内容提供者方法。我可以使用这个解决方案轻松地将缓存机制集成到我的应用程序中。

    希望有帮助。


    服务是肯定的。我假设你想要的是一个半持续的更新,它通知用户开放点,如果该点被顶起,它就会改变。服务最适合在后台运行,等待发送的JSON数据。

    一个ContentProvider和Syncadapter,我相信它只处理电话上的数据,所以我不知道您为什么要使用这些数据。