以前有人遇到过这种情况吗?我强制在Android设备的设置对话框中停止应用。
但是当我通过ps
使用adb
命令时,它仍会显示在屏幕上。但activityManager.getRunningAppProcesses()
无法获得此过程。这个过程甚至在我卸载这个应用程序后都存在,它是随机发生的。
因为我使用ServerSocket
在我的应用中打开了一个端口,所以在停止我的应用后该端口无法释放。
下次我尝试打开我的应用时,它再次无法使用此端口。
我使用的是华硕EeePad,这个问题似乎只发生在该设备上。
顺便说一下,任何第三方工具(如流程管理器)都无法获取该流程。
但是当我通过pid
使用ps
列出所有流程时,它确实存在adb shell
。
答案 0 :(得分:0)
由于没有代码..这里有一些提示:
1 - 你关闭你的连接???这将是保持港口繁忙的主要原因。
2-当你的应用程序暂停,停止或被销毁时,更安全地处理套接字..你可以覆盖暂停,停止或ondesotry ..并在关闭应用程序之前释放端口。
3-在一个单独的线程中建立连接并实现一个计时器来检查你是否真的需要该端口(我的意思是你的应用程序是否存活)并基于该杀死/离开线程(连接)
在最糟糕的情况下,如果你能控制连接的另一端(服务器,设备......),试着让你的解决方案更加灵活,比如首先检查端口范围,然后使用它们。如果它们可用的话。 / p> 祝你好运