我正在创建一个有一些线程的应用程序,我想关闭它。我试过:
System.exit(0);
Run Code Online (Sandbox Code Playgroud)
但应用程序会自行重启。
请帮帮我,谢谢。
编辑:
OnDestroy 代码:
@Override
public void onDestroy(){
android.os.Process.killProcess(android.os.Process.myPid());
}
Run Code Online (Sandbox Code Playgroud)
OnOptionsItemClicked:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
startActivity(new Intent(this, ConnActivity.class));
finish();
break;
case R.id.item2:
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
break;
case R.id.item3:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Mensaje al servidor");
alert.setMessage("Enviar mensaje al servidor");
// Set an EditText view to get user input
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Enviar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString(); …Run Code Online (Sandbox Code Playgroud) 我正在开发一个java项目,其中外部微控制器设备通过串行端口连接到计算机.我在java应用程序中有一个等待对话框,等待命令在微控制器设备上执行.如果微控制器在10秒内没有响应,应用程序将关闭.
问题是某些命令太快,微控制器在等待对话框变为活动状态之前响应.这会导致应用程序在十秒钟后关闭.
这是我想要等待对话框可见的第一个想法:
new Thread() {
public void run() {
while (!Main.mainFrame.waitDialog.isVisible()) {}
Main.usbManager.start();
}
}.start();
Run Code Online (Sandbox Code Playgroud)
但是应用程序停留在while循环中并且等待对话框是可见的,但是如果我向while循环添加一些随机句子 System.out.flush();,则它可以工作,当对话框可见时,程序退出while循环.
我怎么能等待对话框可见?
谢谢