【问题标题】:How to kill a not running process in Android如何杀死Android中未运行的进程
【发布时间】:2012-10-08 11:05:07
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你能分享(复制/粘贴)ps -aux 输出吗?这可能是用户问题或与 Linux / Android 集成有关。
  • 你能分享更多信息吗?您是否在 onDestroy() 方法覆盖中释放了端口(关闭了套接字)?

标签: android process kill


【解决方案1】:

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

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

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

3- 在一个单独的线程中建立连接并实现一个计时器来检查您是否真的需要该端口(我的意思是您的应用程序是否处于活动状态)并基于该终止/离开线程(连接)

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

祝你好运

【讨论】:

    猜你喜欢
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多