按后退键退出Android程序  

主要的目的是按后退键的时候,让程序能够退出。 


实现起来的思路: 


1.捕获后退键被按了这个事件。 


       Java代码 

  1. @Override
  2.         public boolean onKeyDown(int keyCode, KeyEvent event)  {
  3.             if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
  4.             //按下的如果是BACK,同时没有重复
  5.               //DO SOMETHING        
  6.             }
  7.  
  8.             return super.onKeyDown(keyCode, event);
  9.         }

2.在后退键被按的事件里退出程序 





这里也有两种方式:直接退出程序,或者退出到主屏幕。


1)退出程序的方法有两种: 


Java代码

  1. android.os.Process.killProcess(android.os.Process.myPid());   

Java代码

  1. System.exit(0);



我试了这两种方法,但是奇怪的是,在1.5模拟器下,程序确实被KILL了,但是马上Android又重新启动了程序。 


另外还有一种方式,比较友好,可以释放资源,我觉得可行,就是实现起来麻烦一点,需要逐级退出,重写onResume()方法: 


Java代码

  1. @Override
  2. protected void onResume() {
  3.     super.onResume();
  4.     if(mExiting){
  5.         finish();
  6.     }
  7. }

2)退出到主屏幕 


这个比较简单,新建一个主屏幕的Intent就可以。 


Java代码

  1. Intent home = new Intent(Intent.ACTION_MAIN); 
  2.     home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
  3.     home.addCategory(Intent.CATEGORY_HOME); 
  4.     startActivity(home);

我最后采用了按后退键回到主屏幕的方式,实现代码如下: 

Java代码 

  1.   
  2. @Override
  3. public boolean onKeyDown(int keyCode, KeyEvent event) {
  4.   if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // 按下的如果是BACK,同时没有重复
  5.    Intent home = new Intent(Intent.ACTION_MAIN);
  6.    home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  7.    home.addCategory(Intent.CATEGORY_HOME);
  8.    startActivity(home);
  9.   }
  10.   return super.onKeyDown(keyCode, event);
  11. }

欢迎大佬支持本博客的发展 -- Donate --

本文链接:按后退键退出Android程序

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  1. 没有评论

  1. 没有通告