我在后台运行Android服务,它将使用以下代码:
while(true)
{
ServerSocket server = new ServerSocket(1234);
Socket server_socket = server.accept();
}
如果在客户端连接到服务之前停止在server.accept();
,此循环是否会影响电池寿命?
我阅读了文档,但我无法找到accept();
如何等待请求的明确答案。
如果这不是让Android设备等待套接字连接请求的最佳方法,那么有人可以为更好的设备提供帮助吗?
答案 0 :(得分:2)
accept()
是阻止通话
您可以通过设置http://download.java.net/jdk7/archive/b123/docs/api/java/net/ServerSocket.html#setSoTimeout(int)
在您的代码中,只要您接受Socket server_socket = server.accept();
,就会将其丢弃。我希望事实并非如此,你实际上开始一个线程来处理连接