Android:实时更改了服务器上的数据.哪种技术更好



我正在构建一个应用程序,该应用在地图上显示了用户朋友的实时位置。每个用户都会在服务器上更新他的Currnet位置(parse.com)每个定义的间隔(时间和距离)。当用户打开Findfriends活动时,他将在朋友位置获得带有标记的地图。朋友位置数据可以通过两种方法检索:

  1. 当活动运行时,我正在调用一个异步措施,它将在一段时间内从服务器下载位置数据(在Doinbackground内部),并且每次我调用PublishProgress()以处理地图上的更改。
  2. 我编写了一个云代码,每当用户在服务器上更新他的位置时,该代码都会向相关用户发送推送通知(用户无法查看通知)。当FindFriends活动正在运行时,广播的回收者正在获取这些推送和更新地图上的位置数据。

我的问题是:哪种方法更适合我的需求,或者我应该做不同的方法?当然,我想将电池消耗保持在最低限度,但不能以几乎实时数据为代价。

我真的不认为这是一个适当的问题,因为您真的应该使用每个实现制作一个原型,然后查看哪些在您的特定用例中更具性能。但是,我可以说我绝对更喜欢云解决方案。我使用GCM来实现消息客户端,从我的测试中,更新绝对很快(在并排测试两个客户端时,很少有明显的滞后时间)。因此,我认为使用GCM实施它不会对您的用户体验产生负面影响,并且它确实具有消除毫无意义的服务器调查的优势,何时可能没有更新 - 可以节省电池。

如果您想要实时数据,则push notification GCM不是一个好主意,因为不能保证所有用户都会及时收到推送通知。有时您会在推送通知中遇到延迟。

在给定情况下,如果正确处理,则可以是执行所需任务的好方法。您应该控制异步/服务,以便任何时候都可以停止它。

最新更新