先日webviewのアプリでログインのためにキーボードで文字を打ち込んだ所、全く文字入力が受け付けつけてもらえず、1つ前のurlに戻ってしまうというエラーが起こりました。
わけも分からずwebview.goback()が呼ばれている所を詳しく見てみると、
webview.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
}
});
内でgoBack()が呼ばれていることがわかりました。Android Developersに書かれているように、通常ならonKeyListenerはハードウェアのボタンに反応し、ソフトウェア内のボタンには反応しないはずです。事実エミュレーターや他のandroidデバイスでの実機テストではこういったことは起こりませんでした。
原因はわかりませんが、onKeyListenerで実装するのをやめ、onBackPressedをかわりに採用した所、エラーが解決しました。
もし文字の入力などで、エラーが発生した場合はonKeyListenerを疑ってみるもいいかと思います。