我的应用程序有 c++ 代码和许多 pthreads。我关闭应用程序exit(0);
。之后,我列出了正在运行的进程adb shell ps
。此命令显示设备上当前正在运行的进程。
输出显示仍有一些与我的应用程序相关的进程(它们的名称是我的应用程序名称)。多次运行应用程序后,这些垃圾进程的数量会增加。在某些时候,设备无法响应,因为剩余的内存很小。
我意识到了一些问题。当应用程序启动时,它有一个 pid,我可以在进程列表中看到它(带有adb shell ps
)。另外,我看到一些进程,它们的父进程是应用程序进程。而且,如果我退出应用程序,应用程序进程将从列表中删除,但之前的子进程仍然存在。而且,它们的父进程变为 1(我认为它是主操作系统进程或类似的东西)。
此问题发生在 HTC One 上。它不会发生在三星 Note 2 上。关闭应用程序后,三星会自动终止所有子进程。
如何防止此子进程保留?