使用Java exec后,进程继续运行

时间:2015-04-17 19:02:18

标签: java android adb

我有以下方法

public static void disableMobileDate()
{
    try
    {
        Runtime rt = Runtime.getRuntime();
        Process pr = null;
        pr = rt.exec("C:\\Program Files\\Android\\android-sdk\\platform-tools\\adb shell svc data disable");
        System.out.println("### Data disabled on mobile device! ###");
    }
    catch (Exception e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

每次从我的程序运行此方法时,它都会在任务管理器中创建一个adb.exe。 adb.exes(多个adb.exe进程)一直保持在那里,直到我关闭我的程序。无论如何,在命令成功执行后仍然使进程结束?

2 个答案:

答案 0 :(得分:1)

您可以在执行命令后调用pr.destroy()

或者您可以通过taskkill命令终止进程:

rt.exec("taskkill /F /IM adb.exe")

答案 1 :(得分:0)

您可以通过执行pr.destroy()来杀死该进程。但你应该听听出来的更新,一旦它打印出你想要的东西,那么你应该杀掉它。获得输出的方法是here