Miui操作系统,对Android内核做了一定的更改,导致小米的物理返回按键在使用webview控件的时候会不会触发onBackPressed()这个方法,直接导致无法监听物理返回按钮的点击事件同样无法获得页面的标题.解决的办法是将页面每次访问的标题存到一个数组当中,这样在返回的时候直接去数组里面取值,每返回一次数组的最后一个值去掉数量并减一.具体代码如下:
webview.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) { //表示按返回键 时的操作
titles.remove(titles.size() - 1);
textView.setText(titles.get(titles.size()- 1).toString());
webview.goBack();
return true;
}
}
return false;
}
});
这样 每次前进网页的时候 会保存网页的标题,返回的时候在从数组里去取,简单粗暴