Andriod双击退出

来源:互联网 发布:macd指标源码 编辑:程序博客网 时间:2024/06/05 15:40

转载请指明出处 :http://blog.csdn.net/hellohhj/article/details/36892819

这是我知道的两种方式

方式一:

重写onBackPressed方法直接监听返回键(建议高版本用2.0以上)

  1. @Override  
  2. public void onBackPressed() {  
  3.       
  4.        long currentTime = System.currentTimeMillis();    
  5.        if((currentTime-touchTime)>=waitTime) {    
  6.         //让Toast的显示时间和等待时间相同   
  7. //更正一下  waitTime其实只有Toast.LENGTH_SHORT(1) Toast.LENGTH_SHOR(0)也就是说waitTime我们只能设置为有效的这两个数,因为FrameWork底层直接封装好
  8. //Toast的时长固定为2s和3.5s
  9.            Toast.makeText(this"再按一次退出", (int)waitTime).show();    
  10.            touchTime = currentTime;    
  11.        }else {    
  12.            finish();    
  13.        }    
  14.        

方式二: (推荐使用)

  1. long waitTime = 2000;    
  2. long touchTime = 0;   
  3. @Override  
  4. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  5.     if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) {    
  6.         long currentTime = System.currentTimeMillis();    
  7.         if((currentTime-touchTime)>=waitTime) {    
  8.             //让Toast的显示时间和等待时间相同  
  9.             Toast.makeText(this"再按一次退出", (int)waitTime).show();    
  10.             touchTime = currentTime;    
  11.         }else {    
  12.             finish();    
  13.         }    
  14.         return true;    
  15.     }    
  16.     return super.onKeyDown(keyCode, event);    
  17. }  

1 0