7

有没有人遇到过这种情况?我在 Android 设备的设置对话框中强制停止应用程序。但是当我ps通过它使用命令时,adb它仍然显示在屏幕上。但是这个过程是不能通过的activityManager.getRunningAppProcesses()。这个过程甚至在我卸载这个应用程序后仍然存在,它是随机发生的。

因为我在我的应用程序中使用打开了一个端口ServerSocket,所以在我停止我的应用程序后无法释放该端口。下次我尝试打开我的应用程序时,它无法再次使用此端口。

我正在使用华硕 EeePad,这个问题似乎只发生在该设备上。

顺便说一句,流程管理器等任何第三方工具都无法获取流程。pid但是当我使用psviaadb shell列出所有进程时,它确实存在。

4

1 回答 1

0

由于没有代码..这里有一些提示:

1-你关闭你的连接???这将是保持港口繁忙的主要原因。

2-当您的应用程序将要暂停、停止或被销毁时更安全地处理套接字..您可以覆盖 onpause、onstop 或 ondesotry ..并在关闭应用程序之前释放端口。

3-在一个单独的线程中建立连接并实现一个计时器来检查你是否真的需要端口(我的意思是你的应用程序是否活着)并基于那个杀死/离开线程(连接)

4-在最坏的情况下..如果您可以控制连接的另一端(服务器,设备..),请尝试使您的解决方案更加灵活,例如首先检查端口范围,然后使用它们是否可用。

祝你好运

于 2012-10-20T00:20:23.920 回答