业务需要,在主界面连续点击返回键退出应用,记录一下。
先说结论,在主界面Activity中添加如下代码
/*** 记录上次点击返回键时间*/private long lastClickTime = 0;/*** 两次回退点击时间间隔设置不小于2s*/public static final long TIME_INTERVAL = 2000;......@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {exitApp();return false;}return super.onKeyDown(keyCode, event);}/*** 应用退出*/private void exitApp() {if (System.currentTimeMillis() - lastClickTime > TIME_INTERVAL) {//距离上次退出时间超过默认间隔时间,则认为不是连续点击,并记录新的点击时间Toast.makeText(this, "连续两次点击退出应用",Toast.LENGTH_SHORT).show();lastClickTime = System.currentTimeMillis();} else {this.finish();System.exit(0);}}......
lastClickTime
记录上次点击返回键时间。TIME_INTERVAL
。onKeyDown
中监听每次点击返回键。TIME_INTERVAL
(这里设为两秒,实际可根据业务自行调整),则认为连续点击,退出应用。否则吐司弹窗提示,并记录最新点击时间。WebView
控件构成,则需要考虑在每次点击返回键时,判断是否存在可回退Web页面。代码如下:
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// 是否可以回退网页if (keyCode == KeyEvent.KEYCODE_BACK) {if (webView.canGoBack()) {webView.goBack();return true;} else {exitApp();return false;}}return super.onKeyDown(keyCode, event);}