0

我的应用程序有 c++ 代码和许多 pthreads。我关闭应用程序exit(0);。之后,我列出了正在运行的进程adb shell ps。此命令显示设备上当前正在运行的进程。

输出显示仍有一些与我的应用程序相关的进程(它们的名称是我的应用程序名称)。多次运行应用程序后,这些垃圾进程的数量会增加。在某些时候,设备无法响应,因为剩余的内存很小。

我意识到了一些问题。当应用程序启动时,它有一个 pid,我可以在进程列表中看到它(带有adb shell ps)。另外,我看到一些进程,它们的父进程是应用程序进程。而且,如果我退出应用程序,应用程序进程将从列表中删除,但之前的子进程仍然存在。而且,它们的父进程变为 1(我认为它是主操作系统进程或类似的东西)。

此问题发生在 HTC One 上。它不会发生在三星 Note 2 上。关闭应用程序后,三星会自动终止所有子进程。

如何防止此子进程保留?

4

1 回答 1

0

我想知道你为什么不用fork只用pthread,它可以创建一个新进程??(我的linux程序不好)

mybe,您可以在应用程序退出之前尝试代码

Runtime.getRuntime().exec("killall " + applicationName); 
于 2013-11-07T16:39:24.527 回答