繁体   English   中英

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

[英]Similar to C#'s Process.Close event in Java?

如果我使用Java中的ProcessBuilder启动进程,是否可以监听该进程是否已关闭? 我想做的是启动一个进程,在mySQL表中插入一条记录,当进程被杀死或用户退出时,然后在该mysql表中执行delete语句。 我已经在C#中完成了此操作,但是我的用户要求该应用程序也能够在linux和mac上运行,因此我坚持了这一部分。

试试这个我的朋友。

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");;
        }            
    }
}

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

另外,您还可以将finish()放在“警告对话框”按钮上,当用户按下登录屏幕上的后退按钮时,该按钮会弹出。 您可能会添加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()函数,因为它将作为服务器的触发,或者如果用户电话超出其内存容量并且应用程序被迫终止,则可能会触发该触发器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM