1.首先 重写 onKeyDown方法 添加如下代码:
/** * 按键响应,在WebView中查看网页时,检查是否有可以前进的历史记录。 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // Check if the key event was the Back button and if there's history if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { // 返回键退回 webView.goBack(); return true; } // If it wasn't the Back key or there's no web page history, bubble up // to the default // system behavior (probably exit the activity) return super.onKeyDown(keyCode, event); }
2.代码写到这里会出现一个问题,多次点击底部导航按钮 再点击返回键 会相应WebView的GoBack,导致在首页 底部导航反向跳而不退出应用
解决办法,
a. 声明成员变量 :
private boolean isMainAvtivity = true;
b.onKeyDown方法中 改写成如下 意思是如果
isMainAvtivity是true的话 出走退出应用的代码 如果是false的话 相应webview的GoBack事件
/**
* 按键响应,在WebView中查看网页时,检查是否有可以前进的历史记录。 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // Check if the key event was the Back button and if there's history if (isMainAvtivity) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { if ((System.currentTimeMillis() -