类似于Java中的C#的Process.Close事件?

时间:2015-03-28 19:31:13

标签: java c# swing events process

如果我在Java中使用ProcessBuilder启动进程,有没有办法监听该进程是否已关闭?我想要做的是启动进程,将记录插入mySQL表,当进程被终止或用户退出时,然后在该mysql表中执行delete语句。我已经在C#中完成了它,但是我的用户也要求应用程序能够在linux和mac上运行,我坚持使用这部分。

2 个答案:

答案 0 :(得分:2)

试试这个我的朋友。

public class YourClass {

    public static void main(String[] args) throws IOException {

        ProcessBuilder  yourProcess = new ProcessBuilder(); 
        Process process = yourProcess.start();//Creates a new object containing your process
        //Your insert SQL stuff...
        try {
            process.waitFor();//Waits until the process finish
            //Your delete SQL stuff...
        } catch (InterruptedException ex) {
            System.out.println("The process finished unexpectly");;
        }            
    }
}

答案 1 :(得分:0)

您可以使用其中一个Android生命周期,即onDestroy()方法,只需确保您在其中一个事件上调用finish()。

此外,您还可以将finish()放在Alert Dialog按钮上,当用户按下登录屏幕上的后退按钮时,该按钮会弹出。您可能会添加方法onBackPressed(),然后您的最终代码应如下所示:

 onDestroy(){
 super.onDestroy();
 //place your delete function here..
 }

 //then call this when user pressed home button or backbutton on login screen
 finish();

 //or
 onBackPressed(){
 //Show a dialog
 //then put the finish() function on the positive button of a dialog.
 dialog.setPositiveButton...{
 finish();
 }

当你有一个onDestroy()方法时,确保你正在使用finish()函数,因为它将服务器作为它的触发器,或者如果用户手机超过其内存容量并且应用程序被迫结束