diff --git a/agentweb-core/src/main/java/com/just/agentweb/DefaultUIController.java b/agentweb-core/src/main/java/com/just/agentweb/DefaultUIController.java index bbd2224d..a46e4276 100644 --- a/agentweb-core/src/main/java/com/just/agentweb/DefaultUIController.java +++ b/agentweb-core/src/main/java/com/just/agentweb/DefaultUIController.java @@ -367,6 +367,14 @@ public void onPermissionsDeny(String[] permissions, String permissionType, Strin @Override public void onShowSslCertificateErrorDialog(final WebView view, final SslErrorHandler handler, final SslError error) { + Activity mActivity; + if ((mActivity = this.mActivity) == null || mActivity.isFinishing()) { + // Issue #1065: Avoid BadTokenException when the host activity has + // already started finishing. Mirror the guard used by every other + // dialog method in this class (onLoading, onCancelLoading, ...). + handler.cancel(); + return; + } AlertDialog.Builder alertDialog = new AlertDialog.Builder(mActivity); String sslErrorMessage; switch (error.getPrimaryError()) {