¿Es posible separar la interfaz de usuario de WebView y los subprocesos HTTP?

Por varias razones, necesito runOnUiThread () la instanciación real y la inicialización de WebView .

¿Qué significa que sus conexiones HTTP subyacentes también se hacen en el hilo de interfaz de usuario?

Si esto es cierto, ¿es posible separar el tutorial de la interfaz de usuario de WebView del subproceso de conexiones HTTP?

Si es posible, ¿cuál es la manera correcta de lograr esto?

Me resulta muy difícil creer que Android podría ejecutar peticiones HTTP remotas en el hilo de interfaz de usuario, asumiendo que iniciar las solicitudes a través de WebView.loadUrl() . Esto haría para una experiencia de usuario terrible.

Rápidamente, corrí una aplicación de Android en el depurador, con un WebView básico, y me detuve en el depurador. Esto es lo que veo:

Introduzca aquí la descripción de la imagen

Si WebViewCoreThread , WebViewWorkerThread o http0http3 no gestionan las conexiones de red para objetos WebView ,

  1. Tienen muy malos nombres
  2. Android se construye muy mal

Además, si observa esta respuesta por uno de los usuarios de mayor reputación de stack overflow, loadUrl () es asíncrono . Un paso rápido en el depurador me dice que loadUrl() , que se llama en el subproceso de UI (también conocido como main ), se completa demasiado rápido para que la conexión se gestione de forma síncrona en el subproceso de interfaz de usuario. (Puse un punto de interrupción antes y después de la llamada a loadUrl() con una URL que sé que no se sirve muy rápidamente).

Por lo tanto, mi respuesta es que ya está … ya están separados! (¡sí!)

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.