我正在开发一个停车系统,移动设备从服务器数据库中查询停车数据。换句话说,用户请求一个空的停车位,服务器在他的设备上向他发送一个空闲的停车位号。我正在使用带有JSON的restful体系结构。
我观看了Google /02010 rest客户端应用程序视频,他解释说,您可以使用3种设计模式:
我无法决定哪三个最适合我的应用程序,有人有任何有用的提示或知识吗?
任何帮助都是非常感谢的!
发布于 2011-12-16 05:09:36
我使用Google I/O会话中的建议实现了一个解决方案,它对我来说效果很好。
要从远程服务器检索数据,必须使用后台线程,因为在等待服务器响应时不能阻止UI线程。最简单的方法是使用AsyncTask从doInBackground中的服务器获取数据,然后执行onPostExecute中需要进行的UI更新或数据保存。这种方法对于很多用例来说都很好,但是Google I/O会话解决的问题是,如果您的活动在等待服务器响应时被中断,您就会丢失数据。该会话中提出的解决方案是关于如何保存数据的建议,以便能够以一种不附加于活动的方式存储数据。
使用服务,您可以将数据检索与活动分开。(但是请记住,您仍然需要在服务中创建一个单独的线程来检索数据,因为服务仍然运行在UI线程上。)ContentProvider在将信息从服务传递到请求服务器数据的活动时起作用。您可以使用数据库来存储响应。然后,该活动可以从数据库获得响应。
SyncAdapter可以用于重试失败的服务器调用和/或从服务器获取数据,而无需应用程序的特殊请求,因此当应用程序需要它时,它将是新鲜的。当然,这真的应该是非常节省使用,因为它可以消耗相当多的电池。
我强烈建议至少采用服务/内容提供方法。我能够使用该解决方案轻松地将缓存机制集成到我的应用程序中。
希望这能有所帮助。
发布于 2011-12-16 00:46:41
当然是服务。我假设您想要的是一个半常量的更新,它通知用户开放的位置,并在该点被劫持时进行更改。服务最适合在后台运行,等待您发送的JSON数据。
我认为ContentProvider和SyncAdapter只处理手机上的数据,所以我不知道你为什么要使用这些数据。
https://stackoverflow.com/questions/8528354
复制相似问题