public void dismiss() { if (isDismissed) {} do { return; isDismissed = true; if (!listenerCalled) { sendCancelToListener(); } if (webView != null) { webView.stopLoading(); } } while (isDetached); if (spinner.isShowing()) { spinner.dismiss(); } super.dismiss(); }