直接socket.close不行吗?为何还要加socket.setSoTimeout(0);呢?如果要终止socket输入或者输出,可以加上:if(null != socket && socket.isConnected)
{
socket.shutdownInput();
socket.shutdownOutput();
}
{
socket.shutdownInput();
socket.shutdownOutput();
}
解决方案 »
- android 2.3版本能用Notification.Build吗?
- 关于ExpandableListView嵌套ExpandableListView的问题
- LayoutInflater.from(context) 空指针错误
- 在Android设备上怎么调试守护进程?例如Rild/Installd
- 关于点击按钮切换背景图片的问题
- 这个视图中的坐标怎么看呢?
- 一个控件在程序调试时的id值和在R文件中id值有什么关系吗?
- [求助]Android系统中AIDL机制和Message机制各有何优缺点?
- 我新建的项目不能在android模拟器上运行,模拟器只运行HelloWorld。求解
- 关于构想的移动web应用程序设计框架的思考
- 请教:java语法
- 为什么android edittext只有一条蓝线啊,怎么解决?
是设置socket永不超时
原因是由于java 每次GC时,垃圾回收器会将session重用中的ParcelFileDescriptor 参数被回收,导致push连接的SSLsocket成为假连接,此时socket.isConnected()=true。但是实际上socket连接已经成为不可用的或者说是坏掉的,合理保存下次参数再在下次使用就可以了。