Java Android应用程序在系统上重新启动。退出(0);

Java Android应用程序在系统上重新启动。退出(0);,java,android,Java,Android,我正在创建一个有一些线程的应用程序,我想关闭它。我尝试了: System.exit(0); 但是应用程序会自动重启 请帮帮我,谢谢 编辑: OnDestroy代码: @Override public void onDestroy(){ android.os.Process.killProcess(android.os.Process.myPid()); } OnOptions项目已单击: @Override public boolean onOptionsItemSelected(M

我正在创建一个有一些线程的应用程序,我想关闭它。我尝试了:

System.exit(0);
但是应用程序会自动重启

请帮帮我,谢谢

编辑:

OnDestroy代码:

@Override
public void onDestroy(){
    android.os.Process.killProcess(android.os.Process.myPid());
}
OnOptions项目已单击:

@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;
}

最后我通过停止线程解决了这个问题。多亏了所有的请看这里:[[1]:请不要使用
System.exit(0)
。请使用
thread
上的适当方法停止你的线程。你真的需要
System.exit(0)
。用Commonware检查答案如何停止匿名线程?“如何停止匿名线程?”--抓住
thread
对象。然后,采取措施使线程关闭(例如,
interrupt()
,翻转正在监视的
AtomicBoolean
,将
ShutdownEvent
发布到正在监视的
LinkedBlockingQueue
)。