所以我在我的Service中创建一个Socket,它是从一个Activity开始的。套接字连接到我的服务器并等待那些不是周期性的消息,当我写入时它们会被发送。当服务启动时,首先收到的消息正常,但是在我离开电话并且不发送任何消息之后,当屏幕变为空白时,InputStream.readLine()意味着套接字死了,我认为IO异常关闭。该过程仍在运行,并在发生这种情况时继续运行。这是正常的行为吗?我认为在Socket死亡之前至少需要20,30分钟,而不是几秒钟。Android套接字在屏幕变空白后被imidimidelly杀死
Socket mSocket=new Socket(InetAddress.getByName("192.168.1.104"),4444);
BufferedReader in=new BufferedReader(new InputStreamReader(mSocket.getInputStream()));
String message;
try {
while((message=in.readLine())!=null){
notify(message);
}
} catch (IOException e) {
notify("socket dead");
}
谢谢你,但我希望避免唤醒锁。有没有办法android会保持一个插座,等待消息打开超过几秒钟,当屏幕变空白。我的意思是这个进程正在运行,为什么它会尽快杀死在这个进程中创建的Socket? – user1154267 2012-01-17 16:22:13
为什么不记录堆栈跟踪? – Brigham 2012-01-17 19:25:26