当前位置: 首页 > 知识库问答 >
问题:

screen_off后的Android套接字行为

柳俊彦
2023-03-14

情况:我正在开发一个Android应用程序,使用套接字通过websocket协议与服务器进行通信。打开套接字的起点是从应用程序上下文启动的服务。打开服务器并与之通信工作正常。

问题:当设备进入SCREEN_OFF模式时,插座没有关闭。因此,我的问题/顾虑是,当设备处于这种功耗状态时,我的流程到底发生了什么?我是否应该做出反应,关闭插座以节省电池?websocket也使用ping/pong机制来保持连接活动。所以,如果系统从来没有“停止”我的进程,我会一直通信,直到电池没电或操作系统杀死我的应用程序?还是我理解错了?

共有1个答案

汪博达
2023-03-14

当设备进入睡眠模式时,您必须关闭所有服务,线程以节省电池。

 类似资料:
  • 在我的客户端/服务器应用程序中,我的客户端wiil与服务器通信有两个功能:客户端要么向服务器请求数据,要么发送数据,以便服务器保存。我对这两种方法都使用一个套接字,要使用的方法由发送的第一个字节定义。如果第一个字节是“1”,它将请求数据。如果是“2”,它将发送数据(数据字节在“2”字节之后发送)。它非常适合发送数据。但是当我请求数据时,只要我不读取客户端中的套接字流,它就可以工作。这就像如果我在发

  • 如果Serversocket在其积压中充满请求并执行长时间运行的工作,则套接字行为会是什么。当我尝试这样做时,从windows telnet是可以的,它连接。但从unix它得到“连接拒绝”。我的应用程序是用java编写的,并在IBMjvm上运行。顺便说一句,我到了我们的应用程序没有从unix响应telnet的地步。不respoing意味着它正在编写“tyring...”并挂起,而不是拒绝或连接。有

  • 我制作了一个简单的测试应用程序,用于使用java amqp库读取RabbitMQ队列()。 但由于Android权限(socket),我在连接到我的rabbit服务器时遇到了问题 以下是错误消息: W/系统。错误:java。网SocketException:套接字失败:EPERM(不允许操作) 我尝试过添加到舱单。下面是它的样子: 我错过了什么? 编辑 根据要求,以下是完整的错误跟踪:https:

  • 问题内容: 我正在尝试做的事情: 我现在正在尝试构建一个测试应用程序,只需在Android手机(4.2.2)(作为客户端)上的应用程序与在PC上运行的Java应用程序(Windows8)(作为服务器)通过套接字连接。 我已经完成的工作: 我已经在PC上的Java中为客户端和服务器编写了程序,并对其进行了积极的测试(建立了Connection)。 网络: 我的手机和PC都连接到我家里的wifi。PC

  • 我转向你,在这件事上我一直把头撞在墙上。 我正在做一个小的socket编程,我可以看到当我把它放出来。println(“…”)while循环之前的代码行(in.readLine())它工作正常,但我需要它位于循环内部。 说清楚一点,我没有看到任何错误。我只是看不到此应用程序的客户端显示文本。它看起来好像在工作,但事实并非如此。此外,我也不控制该应用程序的客户端,它由通过TCP连接到此套接字侦听器应

  • 我编写了简单的服务器/客户端程序,其中客户端将一些硬编码数据以小块形式发送给服务器程序,服务器程序正在等待数据,以便将其打印到终端。在客户端,我在循环中调用send(),同时有更多的数据要发送,而在服务器上,我使用read()执行同样的操作,即返回的字节数为 如果我在完成发送后专门在客户端的套接字上调用close(),那么这个示例非常有效,但如果我不这样做,服务器将不会实际退出read()循环,直