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