在Android中建立持久连接

时间:2014-07-17 18:20:45

标签: android sockets tcp connection

对于我的Android应用程序中的一个屏幕,我需要不确定地收听服务器 - 即;我屏幕上的字段很少,其值会持续变化,因此屏幕保持打开状态。要更新的值将由服务器连续提供。我知道正常的http连接不是这里的解决方案。此外,由于性能原因,我不希望连续发出http请求。为实现这一目标,最好的方法是什么?GCM云连接服务器是我的要求的一个很好的解决方案。或者有更好的解决方案吗?请指教。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我认为有两种选择。如果你自己不拥有服务器,我会启动一项服务,在后台运行并绑定它。该服务将在某个时间间隔轮询服务器,具体取决于您希望更新值的频率。然后,该活动将接收定期更新并更新视图。鉴于您正在更新的信息实际上并不是那么大,每30秒到一分钟的更新根本不会对性能产生影响,因为所有工作都将在异步任务中完成。 / p>

Using an AlarmManager to accomplish this.

如果您拥有服务器,那么您可以实现GCM模型,并且仅在数据更改时发送更新。这假设应用程序的每个用户当然都会得到相同的更新集。

Introduction to GCM

答案 1 :(得分:0)

保持屏幕开启可能会耗费电量。如果您拥有服务器,则可以使用GCM服务将更改推送到应用程序。 据我所知,GCM捆绑推送来自多个服务器的消息,试图将消息推送到一起,因此是一种优化的通信方式。

或者,您可以启动一个服务器,该服务器可以继续轮询原始服务器并通过GCM将更改推送到应用程序。