Android 彻底关闭应用程序 返回键的捕获


在开发Android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就能关闭程序,其实大多情况下该应用还在任务里运行着,其实这不是我们想要的结果。

我们可以这样做,当用户点击自定义的退出按钮或返回键时(需要捕获动作),我们在onDestroy()里强制退出应用,或直接杀死进程,具体操作代码如下:

  1. @Override  
  2.   
  3.  public boolean onKeyDown(int keyCode, KeyEvent event) {  
  4.   
  5.   //按下键盘上返回按钮   
  6.   
  7.   if(keyCode == KeyEvent.KEYCODE_BACK){  
  8.   
  9.    new AlertDialog.Builder(this)  
  10.   
  11.     .setIcon(R.drawable.services)  
  12.   
  13.     .setTitle(R.string.prompt)  
  14.   
  15.     .setMessage(R.string.quit_desc)  
  16.   
  17.     .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {  
  18.   
  19.      @Override  
  20.   
  21.      public void onClick(DialogInterface dialog, int which) {  
  22.   
  23.      }  
  24.   
  25.     })  
  26.   
  27.     .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {  
  28.   
  29.      public void onClick(DialogInterface dialog, int whichButton) {  
  30.   
  31.       finish();  
  32.   
  33.      }  
  34.   
  35.     }).show();  
  36.   
  37.      
  38.    return true;  
  39.   
  40.   }else{    
  41.   
  42.    return super.onKeyDown(keyCode, event);  
  43.   
  44.   }  
  45.   
  46.  }  
  47.    
  48.   
  49.  @Override  
  50.   
  51.  protected void onDestroy() {  
  52.   
  53.   super.onDestroy();  
  54.   
  55.   System.exit(0);  
  56.   
  57.   //或者下面这种方式   
  58.   
  59.   //android.os.Process.killProcess(android.os.Process.myPid());   
  60.   
  61.  }  

相关内容