android应用activity第一次进入正常第二次进入报错

在Android开发中,遇到一个现象:应用首次启动正常,但退出后再次进入,若使用finish(),会出现'Address already in use: JVM_Bind'错误。问题与未关闭的ServerSocket有关。解决办法是在finish()后调用ServerSocket的close()方法,或者在创建ServerSocket时设置SO_REUSEADDR选项。确保在绑定端口前设置SO_REUSEADDR,否则无效。遵循这些步骤可以避免应用再次启动时的端口冲突问题。
摘要由CSDN通过智能技术生成

         在android 开发中工作中遇到一个问题,第一次进入应用,正常退出,若采用finish(),则第二次进入时候,程序出现如下错误(代码中有serversocket)

    java.net.BindException: Address already in use: JVM_Bind

若是退出时在finish(),之后在继续调用system.exit(0),则第二次进入应用,则没有问题。

查阅资料时候 http://bbs.chinaunix.net/thread-2030722-1-1.html ,提到使用

如果服务端的程序关闭后,端口不能马上释放掉,需要等一会才能小时,在这之间再启动服务程序是起不来的,但是可以用这个函数,边面这种情况,服务程序关闭后,可以马上再起一次,不会冲突了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值