Android中再按一次退出实现

很多应用中都有一个在用户后退的时候显示“再按一次退出”的提醒,这个怎么实现呢?有两种方式

第一种方式(最常用)

	long waitTime = 2000;  
	long touchTime = 0; 
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) {  
	        long currentTime = System.currentTimeMillis();  
	        if((currentTime-touchTime)>=waitTime) {  
	        	//让Toast的显示时间和等待时间相同
	            Toast.makeText(this, "再按一次退出", (int)waitTime).show();  
	            touchTime = currentTime;  
	        }else {  
	            finish();  
	        }  
	        return true;  
	    }  
	    return super.onKeyDown(keyCode, event);  
	}

第二种方式

重写onBackPressed方法直接监听返回键

	@Override
	public void onBackPressed() {
		
        long currentTime = System.currentTimeMillis();  
        if((currentTime-touchTime)>=waitTime) {  
        	//让Toast的显示时间和等待时间相同
            Toast.makeText(this, "再按一次退出", (int)waitTime).show();  
            touchTime = currentTime;  
        }else {  
            finish();  
        }  
	     
	}

这种方法虽然写法简单,但是这种方法缺只适用于Android 2.0以后.

如果你需要同时重写这两个方法,可能要注意一些问题啦!系统先是onKeyDown,如果return true了,就不会onBackPressed了。



原文地址:https://www.cnblogs.com/lanzhi/p/6469218.html