0
WebViewがあります。ビューを元に戻すときにBackボタンを2回押すとクラッシュします。何が起こるかは、最初のBack Pressで、それはページを元に戻す(ページA)のロードを引き起こし、次に2番目のonKeyDownイベントが来て、WebViewをkillする(期待どおり)。 WebViewがすでに終了した後、ページAはロードされ続けます(Backボタンを最初に押すため)、onPageStartedとonPageFinishedが呼び出されます。これらの関数は、webViewが既に破棄されているため、アプリケーションをクラッシュさせます。 ?バックプレスでAndroid WebViewがクラッシュする2回
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (page.canGoBack()) {
progressBar.stopProgressAnimation();
page.goBack();
return true;
} else {
exitGracefully();
}
}
}
return super.onKeyDown(keyCode, event);
}
private void exitGracefully() {
destroyWebview();
navigationBarLayout.recycleViewBitmaps();
getActivity().finish();
}
、これはonPageFinを助けていませんWebViewを終了した後もonPageとonPageStartedが呼び出されます – user2924714