我正在创建一个涉及多线程的应用程序,我想要关闭它。我尝试过以下方法:
System.exit(0);
但应用程序会自动重启。
请帮忙,谢谢。
编辑:
OnDestroy 代码:
@Override
public void onDestroy(){
android.os.Process.killProcess(android.os.Process.myPid());
}
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();
MessageRequest msqr = new MessageRequest();
msqr.msg = new Packets.Message();
msqr.msg.lidfrom = pi.getPhoneLoginIdentifier();
msqr.msg.lidto = new LoginIdentifier("SERVER","SERVER","-1");
msqr.msg.msg = value;
setTime(msqr.msg);
send(msqr);
}
});
alert.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
}
});
try{
alert.show();
}catch(Exception e){
}
break;
}
return true;
}
System.exit(0)
。请使用Thread
上适当的方法停止线程。 - CommonsWareSystem.exit(0)
吗?查看 CommonsWare 的答案:https://dev59.com/w3I-5IYBdhLWcg3wED5V - RaghunandanThread
对象。然后,执行某些操作来导致线程关闭(例如,interrupt()
,翻转您正在监视的AtomicBoolean
,将ShutdownEvent
发布到您正在监视的LinkedBlockingQueue
)。 - CommonsWare