Cómo detener la ejecución de JavaScript en Android Webview

Escenario: Tengo una actividad que contiene un WebView. Cada vez que inicie esa actividad, algunos contenidos HTML se procesan dentro de WebView. También estoy inyectando Javascript en WebView que tiene algún código que incluye el detector de eventos DomContentLoaded.

Problema: El problema es que a veces JavaScript está tardando mucho tiempo en ejecutar en WebView. Esto sucede al azar no cada vez. La mayor parte del tiempo se carga muy rápido. Pero a veces para el mismo contenido se tarda> 20 segundos en ejecutarse. Ahora en este estado, si vuelvo de la actividad y la vuelvo a iniciar, Javascript no se cargará en WebView, ya que la ejecución anterior de JS aún no está terminada. Tengo que matar la aplicación y empezar de nuevo con el fin de hacer que el trabajo WebView. ¿Cómo recuperarse de este estado sin matar la aplicación? Intenté detenerlo utilizando el código siguiente, pero ninguno funcionó. ¿Cualquier otra sugerencia?

webView.stopLoading(); webView.loadData("", "text/html", null); webView.freeMemory(); webView.removeAllViews(); webView.destroy(); 

Usted podría intentar desactivar Javascript temporalmente y luego activarlo de nuevo en este modo:

  webview.getSettings().setJavaScriptEnabled(false); webview.getSettings().setJavaScriptEnabled(true); 

Pero si estás intentando limpiar recursos en un WebView, la documentación dice:

Utilice WebView.loadUrl ("about: blank") para restablecer de forma fiable el estado de la vista y los recursos de la página de publicación (incluyendo cualquier JavaScript en ejecución).

http://developer.android.com/reference/android/webkit/WebView.html#clearView%28%29

  • Objeto vacío de la interfaz Javascript de Android en la vista web
  • La pantalla.width, screen.height & window.innerWidth y window.innerHeight del navegador Android no son confiables
  • Dom iterando causando la mitad de renderizado de webview
  • ¿La alerta no aparece desde la vista web en android?
  • ¿Cómo obtengo el ancho 'css-pixel' (media-query) con Javascript?
  • Cómo obtener un mensaje de devolución de servicio de Android desde un plugin de teléfono
  • ¿Qué es una buena alternativa iScroll que admita iOS, Android, WP8 y funcionalidad pull-to-refresh?
  • Evitar el desplazamiento en el navegador móvil, sin impedir el enfoque de entrada
  • alerta en la vista web incorporada
  • Phonegap versión 3 phonegap.js no encontrado
  • ERR_ADDRESS_UNREACHABLE para abrir mi localhost en Chrome Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.