在某些设备上退出应用程序后仍保留进程

时间:2013-11-07 16:05:12

标签: android c++ process android-ndk kernel

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

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

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

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

如何防止此子进程保留?

1 个答案:

答案 0 :(得分:0)

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

mybe你可以在申请退出之前试用代码

Runtime.getRuntime().exec("killall " + applicationName);