我的应用程序已经出现了c ++代码和许多pthreads。我用exit(0);
关闭申请。之后,我列出了adb shell ps
的运行流程。此命令显示设备上当前正在运行的进程。
输出显示仍有一些与我的应用程序相关的进程(它们的名称是我的应用程序名称)。多次运行应用程序后,这些垃圾进程数量增加。在某些时候,设备无法响应,因为剩下的内存很少。
我意识到了一些问题。当应用程序启动时,它有一个pid,我可以在进程列表中看到它(使用adb shell ps
)。此外,我看到他们的父进程是应用程序进程的一些进程。而且,如果我退出应用程序,应用程序进程将从列表中删除,但之前的子进程仍然存在。并且,他们的父进程变为1(我认为它是主要的操作系统进程或类似的东西)。
HTC One出现此问题。它不会发生在三星Note 2上。关闭应用程序后,所有子进程都会在三星上自动终止。
如何防止此子进程保留?
答案 0 :(得分:0)
我想知道为什么你没有使用fork只是使用pthread,它可以做一个新进程??(我的linux程序不好)
mybe你可以在申请退出之前试用代码
Runtime.getRuntime().exec("killall " + applicationName);