【问题标题】:Stop child process when parent process stops当父进程停止时停止子进程
【发布时间】:2012-11-06 02:18:17
【问题描述】:

在我的 android 应用程序中,我使用 Runtime.getRuntime().exec() 创建了一个子进程。

但可能是这样的情况,用户杀死了我的应用程序,但子进程仍在运行。我想要的是,当我杀死应用程序时,也杀死子进程。我该怎么做?

【问题讨论】:

    标签: android events process runtime


    【解决方案1】:

    我愿意

    • 跟踪我的应用程序创建的进程。
    • 通过Runtime.getRuntime().addShutdownHook() 向 JVM 注册一个关闭挂钩,该挂钩将在应用程序关闭时调用并终止所有在上一步中跟踪的生成的进程。

    【讨论】:

    • Vikdor,我可能不太正确。我的意思是“杀死”是从任务管理器停止。首先,我在java中的win7中测试:创建带有无限循环的简单应用程序。后来停在:taskkill /IM javaw.exe /f 没看到,那个钩子线程启动了
    • 我遇到了与原始问题相同的问题,并尝试使用关闭挂钩 - 请参阅 *.com/questions/16173387/… - 但这不起作用。还有其他想法吗?