在某些设备上退出应用程序后仍保留进程
remain processes after exit application on some devices
我的应用程序有c ++代码和许多pthread。我用exit(0);
关闭应用程序。之后,我列出了带有adb shell ps
的运行进程。此命令显示设备上当前正在运行的进程。
输出显示仍有一些与我的应用程序相关的进程(它们的名称是我的应用程序名称)。多次运行应用程序后,这些垃圾进程数量会增加。在某些时候,设备无法响应,因为剩余内存很少。
我意识到了一些问题。当应用程序启动时,它有一个 pid,我可以在进程列表(带有 adb shell ps
)上看到它。另外,我看到一些进程,他们的父进程是应用程序进程。而且,如果我退出应用程序,应用程序进程将从列表中删除,但以前的子进程仍然存在。而且,它们的父进程变为 1(我认为它是主操作系统进程或类似的东西)。
此问题发生在HTC One上。 在Samsung Note 2上不会发生。关闭应用程序后,三星上的所有子进程都会自动终止。
如何防止剩余此子进程?
我想知道为什么你没有使用fork只是使用pthread,它可以制作一个新进程??(我的Linux程序不好)
MyBe您可以在应用程序退出之前尝试代码
Runtime.getRuntime().exec("killall " + applicationName);
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 如何将一个窗口保留在另一个应用程序窗口的前面
- 堆栈保留大小和堆栈提交大小的增加会提高应用程序性能吗
- 将 INT3 中断保留给视觉工作室上的应用程序异常处理程序
- C++ - 关闭应用程序后保留内存
- 在某些设备上退出应用程序后仍保留进程
- 在硬盘上为应用程序保留空间
- 在来自C++应用程序的成功调用之间保留dll中的状态