[英]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.