类似于 Java 中 C# 的 Process.Close 事件?
Similar to C#'s Process.Close event in Java?
如果我在 Java 中使用 ProcessBuilder 启动一个进程,是否有办法监听该进程是否已关闭?我想做的是启动一个进程,向 mySQL table 插入一条记录,当进程被终止或用户退出时,然后在 mysql 中执行一条删除语句] table。我已经在 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() 函数,因为它将作为它的触发器,或者如果用户 phone 超出其内存容量并且该应用程序被迫结束。
如果我在 Java 中使用 ProcessBuilder 启动一个进程,是否有办法监听该进程是否已关闭?我想做的是启动一个进程,向 mySQL table 插入一条记录,当进程被终止或用户退出时,然后在 mysql 中执行一条删除语句] table。我已经在 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() 函数,因为它将作为它的触发器,或者如果用户 phone 超出其内存容量并且该应用程序被迫结束。