首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现与服务器的长期通信的最佳方法

实现与服务器的长期通信的最佳方法
EN

Stack Overflow用户
提问于 2013-08-29 07:36:02
回答 3查看 965关注 0票数 1

我需要打开和保持与服务器的长期连接,以发送消息,接收响应。此外,有时服务器在没有用户请求的情况下发送信息,因此android设备应该监听服务器并做出反应。

有AsyncTasks,在这里我可以实现套接字连接,但主要的问题是我只知道一种方法-发送请求和接收响应一次。然后关闭AsyncTask (和连接)。

我还读过有关服务的文章(我从未使用过)。

是否有可能与服务器建立长期(1-4小时)连接,使连接保持活动,侦听用户命令(例如,单击按钮时需要向服务器发送数据)并接收来自服务器的响应或请求(然后更改UI)。当电话睡着,需要更多的记忆或其他东西时,服务(和连接)会被杀死吗?电池成本高吗?

也许还有别的办法?谢谢您的所有答复。

很抱歉英语能力差,希望你能理解:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-29 07:44:58

您可能应该使用在后台运行的服务

此外,您真的不需要让服务始终保持与网络连接的活力。您可以选择Google消息传递,它支持通过XMPP协议进行双向通信。使用此协议,您可以:

  1. 接收来自服务器的通知,启动服务并进行必要的处理。
  2. 向服务器发送通知,服务器在其上执行任何必要的工作。

这些通知是4kb短消息,因此它们更好地用作发布/订阅模型的“命令”,从而启动其他网络连接,如上传和下载。其余的时间,服务可以是不活动的,以减少资源消耗。

票数 2
EN

Stack Overflow用户

发布于 2013-08-29 07:42:46

根据Android参考

“服务是可以在后台执行长时间运行操作的应用程序组件”

是的,它消耗电池,你必须自己停止:“重要的是,当应用程序完成工作时停止它的服务,以避免浪费系统资源和消耗电池电源。”

所以我认为服务符合你的需要。

票数 0
EN

Stack Overflow用户

发布于 2013-08-29 07:43:14

如果要向服务器发送数据时需要与服务器通信,则可以这样做并等待答复。如果需要将数据从服务器发送到设备,请查看推送通知

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18504873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档